Skip to content

Commit

Permalink
Preparation for new release 0.0.8 (#149)
Browse files Browse the repository at this point in the history
* initial null-safety implementation

* attributes non-nullable + tests, fix meta tests

* make altitude for Position and BBox nullable

* update action deps, build runner

* delete conflicting outputs, dart test on PR action

* Strongly type and refactor geomEach meta function

This commit also renames Geometry to GeometryObject

* simplify geomEach

* Add coverage reporting to pull requests tests

* Allow PR coverage comment to fail

This allows PRs from forks to still run the tests successfully

* Refactor coverage reporting into its own job

The coverage job is allowed to continue on error, letting the entire
workflow 'pass' if we hit issues running or reporting coverage

* Move coverage reporting into separate workflow

* geomEach: nullable fields #36

* fix types in tests

* Update to latest romeovs/lcov-reporter-action

This should resolve an issue where the 'comment code coverage on PR'
action fails after being merged into main. See
romeovs/lcov-reporter-action#16

* raise version for release 0.0.3

* [meta] add implementation and test for featureEach and propEach (#24)

* Assemble different types, refactor GeoJSON serialization, general improvements (#43)

* #19, #20, #21, refactor

* convert GeoJSONObjectType to enum, rename

* rm overridden bboxes

* Implement vector operations #23

* statically type 'round' helper func, fix unit test

* gen coverage

* fix typo

* geojson unit tests, type fixes

* fix deserialization with GeoJSONObjectType, implement hashCode

* initial unit tests for new constructors

* integration tests

* fix path

* test bbox on other geojson types

* update enum tests

* required params for new constructors, unit tests

* license notices

* bump version for release

* Add basic benchmarking framework (#51)

* Add pub version badge

* [meta] add coordeach implementation (#50)

* [meta] add coordeach implementation

* [benchmark] add coordeach benchmark using test fixtures

* Add implementation for getCoord & getCoords // invariant package (#53)

* initial getCoord & getCoords implementation

* WIP test coords/coord

* test gitpod flutter config

* ports invariants package (#62)

* dart pub get added

* wip, type problem

* fixed return error of the test

* Gitpod config

* new test cases, changed comments

* standardized the comments

* wrapped List in brackets

* some minor typo edit

* added highlight in documentation

* formatted conflicting files

* deleted the gitpod files

Co-authored-by: Arman Torkzaban <[email protected]>

Co-authored-by: arman <[email protected]>
Co-authored-by: arman <[email protected]>
Co-authored-by: Arman Torkzaban <[email protected]>

* Add flattenEach function and tests (#48)

* Add flattenEach function and tests

* Refactor flattenEach slightly

* Refactor meta -- breaking of iterations tests

* Explicitly do not support nested GeometryCollections

* Update documentation links

* Use more specific type checks in flattenEach test

* rm duplicate fcMixed

* remove geometryCollection clause

* warning for nested GeometryCollection

Co-authored-by: Lukas Himsel <[email protected]>

* refactor coordEach with geomEach, change type in geomEach callback (#68)

* [meta] add coordeach implementation

* Rework coordEach implementation to match setup more from geomEach

* cleanup

* optimize for geometry collection

* refactor coordEach with geomEach, change type in geomEach callback

Co-authored-by: Tobrun Van Nuland <[email protected]>

* Port coordAll function and test, also: refactor coordEach callback  (#64)

* beginning

* wip coordAll

* coordAll test, WIP

* changes CoordEachCallback's signature

* typecast removed, test corrected

* changes before merging

* refactor for Position in CoordEachCallback

Co-authored-by: Lukas Himsel <[email protected]>

* Update README.md

* Feature reducers (#49)

* Temporarily type geomEach callback to GeometryType

* Add geomReduce function and tests

* propReduce function

* WIP - featureReduce()

* WIP

* added examples and documentations

* flattenReduce WIP

* WIP

* coordReduce

* documentation

* add static types

* merge readme

* prepare new merge

* generic types for all reducer functions

* TurfJS compatible solution with type checks

* add cloning

* fixed types passed to callbacks, propReduce test

* flattenReduce and featureReduce test

* coordReduce

* minor type conv. num to int

Co-authored-by: Arman Torkzaban <[email protected]>
Co-authored-by: Lukas Himsel <[email protected]>

* Port cluster functions and tests (#69)

* port functions

* getCluster documentation

* WIP documentation

* Did the documentation

* wrote tests

* benchmarks - in process

* moved benchmarks to separate file

* exported clusters.dart

Co-authored-by: armantorkzaban <[email protected]>

* Port meta segment functions & lineSegment (#70)

* initial commit to segment file

* beginning

* lineSegment()

* lineSegment

* refactor

* lineSegment tests

* polygon test

* wip segmentEach

* rewrite segmentEach witohut coordEach

* fix flattenEachCallback

* combine units

* tests for segmentEach

* segmentEach id check tests

* segmentReduce impltd.

* updated README

* Documentation

* benchmark init

Co-authored-by: Arman Torkzaban <[email protected]>

* split up meta into separate files (#72)

* Meta functions extension methods (#73)

* initial setup

* fix export, add all *each functions

* implement 'other' functions

* implement *reduce functions

* fix tests

* rm geojson param for reducers

* Update functions and packages in README.md (#67)

* WIP - updating README.md

* missing new functions & packages

* helpers function aint needed anymore - constructor

* Links added and unnecessary funtioncs deleted

Co-authored-by: Lukas Himsel <[email protected]>

* Raise version to 0.0.5

* Documentation (#75)

* in process - early analysis of the work

* linked the meta functions in readme

* CONTRIBUTING.md

* links to the sources

* edited typos

* documentation work

* closes #77, closes #16

* proofread

* improves pub.dev score, closes #79, #78, #75

* Added deleted model, complemented contributing.md

Co-authored-by: Lukas Himsel <[email protected]>

* raise to version 0.0.6

* Improve pub score & raise to version 0.0.6+2 (#82)

* add examples, fix segment * callbacks

* raise version to 0.0.6+2

* Improve pub score (rename example file, raise to 0.0.6+3) (#84)

* add examples, fix segment * callbacks

* raise version to 0.0.6+2

* Rename example file, raise to 0.0.6+3

* Implement `nearestPointOn(Multi)Line` and `internal` intersects helper (Attempt 2) (#87)

* Implement `nearestPointOn(Multi)Line` (#86)

Co-authored-by: Levente Morva <[email protected]>

* localIndex and index

* add documentation

* Fix `globalIndex` behaviour

Co-authored-by: Levente Morva <[email protected]>

* fix test, according to new globalIndex behaviour

* add intersection test

Co-authored-by: Levente Morva <[email protected]>

* Port explode function and test (#93)

* initial version without tests

* closes #93

* updated readme for explode

* fixed formatting

Co-authored-by: armantorkzaban <[email protected]>

* Merge bbox-polygon and bbox, center, polyline decode (#99)

* Added coordEach translation

* Added bBox translation

* Added center translation

* Added decode points from polyline

* Update read me

* Remove and exclude .idea from git indexing

* Convert double to Position

* Use existing coord each implementation

* Return bBox points in the correct order

* Add bbox unit test

* Change libraries namespaces

* Code refactor

* Add doc blocs and some more missing functions

* Add encode polyline feature

* Add tests for both encode and decode polylines

* Add bbox tests

* Add helper functions

* Convert array to Bbox

* Remove redundant helper functions

* Add documentation

* implementation

* tests init, documentation, addition of types and debug

* implemented, docs

* test initiation

* added it to /lib, updated readme, can close 97

* renamed the test file

* comments resolved

* typo

* unused lib removed

* merge bbox-polygon

* missing center_test.dart

* imported bbox_polygon to center_test

* test error fixes

Co-authored-by: Dennis Mwea <[email protected]>
Co-authored-by: Lukas Himsel <[email protected]>

* Added missing alt1, alt2 in BBox constructor, BBox put in README (#100)

* Added coordEach translation

* Added bBox translation

* Added center translation

* Added decode points from polyline

* Update read me

* Remove and exclude .idea from git indexing

* Convert double to Position

* Use existing coord each implementation

* Return bBox points in the correct order

* Add bbox unit test

* Change libraries namespaces

* Code refactor

* Add doc blocs and some more missing functions

* Add encode polyline feature

* Add tests for both encode and decode polylines

* Add bbox tests

* Add helper functions

* Convert array to Bbox

* Remove redundant helper functions

* Add documentation

* implementation

* tests init, documentation, addition of types and debug

* implemented, docs

* test initiation

* added it to /lib, updated readme, can close 97

* renamed the test file

* comments resolved

* typo

* unused lib removed

* merge bbox-polygon

* missing center_test.dart

* imported bbox_polygon to center_test

* test error fixes

* added alt 1,2 to Bbox

* added bbox to readme

* Fix typos

* bbox constructure changed to standard

* bbox optional positional param. set accordingly

* Documentation on limitation of optional prms. Bbox

* Update geojson.dart

* fix order of BBox default constructor in test

* update doc comment

* fix previously missed null exceptions

Co-authored-by: Dennis Mwea <[email protected]>
Co-authored-by: Lukas Himsel <[email protected]>

* Implement rhumbBearing function and test (#109)

* initial commit, stolen from @armantorkzaban

* fix formatting

* cleanup comments

* Ports lineToPolygon, polygonToLine, and their tests (#104)

* line_to_polygon ported

* test init of lineToPolygon

* debugging the test on line to polygon

* line_to_polygon_test done

* polygonToLine init

* check for features' tyope in FeatureCollections

* file name change

* test and impl. done for polygonToLine

* refactor autocomplete, lineStringToPolygon

* comments resolved

* type added

* implementation and test and type setting

Co-authored-by: Lukas Himsel <[email protected]>

* Adds proper documentation to feature-conversion Part I (#115)

* line_to_polygon ported

* test init of lineToPolygon

* debugging the test on line to polygon

* line_to_polygon_test done

* polygonToLine init

* check for features' tyope in FeatureCollections

* file name change

* test and impl. done for polygonToLine

* refactor autocomplete, lineStringToPolygon

* comments resolved

* type added

* implementation and test and type setting

* corrected documentation

Co-authored-by: Lukas Himsel <[email protected]>

* Update impl status of feature conversion package

* Ports truncate package and its test (#111)

* implemented

* test init

* moving on with the test

* test finished.

* comments resolved

* add truncate reference

* Ports clean_coords and its test (#112)

* init

* implemented

* test init - imported

* test, moving on

* implemented points in comments

* resolving comments

* test done

* readme updated, js removed

* fix turf_equality dep, replace forEach with for

* update types

* trying to fix mutation

* refactor, fix tests

* another variance

* simplified, cleaned comments

* seems like it works!

Co-authored-by: Lukas Himsel <[email protected]>

* Debugs GeometryCollection condition in truncate (#121)

* implemented

* test init

* moving on with the test

* test finished.

* comments resolved

* updated readme.md

* changed from forEach to for and used the element

* changed forEach to a for loop

* variable name changed - resolving a comment

* rid of redundant case for GeometryCollection, test

Co-authored-by: Lukas Himsel <[email protected]>

* close #116 - add src path to README

* update changelog, bump version for release

* Added support for the area function (#123)

* Added the area function

* made the geometry to be of type GeometryType

* fixed the test and added a benchmark test

* fixed the area docs

* added some more tests

* Marked functions as private and fixed documentation

* fixed documentation

* added exception in case of unsupported geometry type, formatted the code and removed some redundant code

Co-authored-by: yarden <[email protected]>

* Implement polygon-smooth and its tests (#127)

* initial implementation, and refactor

* finished test and benchmark impl

* reference in README

* Port boolean functions and tests (#91)

* in process - early analysis of the work

* linked the meta functions in readme

* CONTRIBUTING.md

* links to the sources

* edited typos

* documentation work

* closes #77, closes #16

* proofread

* improves pub.dev score, closes #79, #78, #75

* Added deleted model, complemented contributing.md

* booleans init

* initial import

* boolean_touches

* valid - wip

* within - init

* rewiring the translated code

* contains etc.

* touches

* valid

* dependencies imported

* Update CONTRIBUTING.md

* clockwise test

* concave test

* intersect test

* pointOnLine test

* contains

* crosses_test - blocked by findIntersections

* boolean_contain

* boolean_within

* rhumb_bearing

* rhumb_bearing\'s test  - incomplete

* rhumb_bearing's test - done, added to lib/bearing

* boolean_contains, boolean_parallel, IP

* working on contain - removed usages of runtimeType

* rewriting pointInLine

* tests reverted to false/true folder style

* restructuring, clean-up

* clockwise and its test, documentation

* concave finalized

* PointInPolygon plus test, dart format

* removed the commented JS lines

* return type added

* disjoint and test - not done, depends on sweepline

* equal implement, test, has dependencies

* moving on

* clean coords init

* cleanCoord implemented, going to new branch

* moving on with equal

* update turf_equality dep

* moving forward

* refactors boolean_equal

* #88 crosses, disjoint, equal, intersects, pip @lukas-h

* cleanup on #88

* progress on overlap

* bool: overlap,parallel,valid,touches & lineOverlap

* issue with test is worked on

* still at porting the overlap test

* done: parallel

* working on valid

* touches done

* valid - got stuck

* progress on within

* moved on with valid, refactored

* valid test

* lineIntersection testet - contains sweepline

* package publishabe, rm git deps, fix equality dep

* update params in equality

* mod. on valid to cover the std. - MutiPs' 'finite'

* RFCs resolved - readied for merge

* return type of getGeom

* linter effect!

* reolved requests

* more requests resolved

* more requests resolved

* test name, touching lineOverlap

* fix conversations in booleanContains

* fixes conversations in crosses and disjoint

* resolves allllllllll outdated conversations, refactor

* use getGeom in booleanTouches

* use getGeom more frequently

* rm linter rule, which is already inherited from dartclub_lint

* cleanup, ready for merge

Co-authored-by: Lukas Himsel <[email protected]>

* Add missing parameter 'unit'. (#145)

* Implement rhumb_distance with tests.

* Implement rhumb_destination with tests.

* Implement centroid with tests.

* Implement transform_rotate with tests.

* Add truncate tests for MultiLineString, MultiPoint, MultiPolygon

* run dart format

* introduce localCoordIndex in coordEach, cover more test cases in truncate_test

* prepare for next release, support

* work student position

* Fix excludeWrapCoord in coordEach for MultiPolygon type. (#148)

* Fix excludeWrapCoord in coordEach for MultiPolygon type.

* Added multipolygon test case for centroid.

* format markdown

---------

Co-authored-by: Brad Parham <[email protected]>
Co-authored-by: Tobrun <[email protected]>
Co-authored-by: arman <[email protected]>
Co-authored-by: arman <[email protected]>
Co-authored-by: Arman Torkzaban <[email protected]>
Co-authored-by: Levente Morva <[email protected]>
Co-authored-by: Dennis Mwea <[email protected]>
Co-authored-by: yardenfi <[email protected]>
Co-authored-by: yarden <[email protected]>
Co-authored-by: Kangmin An <[email protected]>
Co-authored-by: ggastv <[email protected]>
  • Loading branch information
12 people authored Jun 13, 2023
1 parent a9b8df7 commit 4c4c924
Show file tree
Hide file tree
Showing 535 changed files with 22,570 additions and 258 deletions.
14 changes: 12 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
## 0.0.8

- Implements `transformRotate`, `rhumbDistance`, `rhumbDestination`, `centroid` [#147](https://github.com/dartclub/turf_dart/pull/147)
- Introduce `localCoordIndex` in `coordEach`
- Implements all the `boolean`* functions [#91](https://github.com/dartclub/turf_dart/pull/91)
- Implements `area` function [#123](https://github.com/dartclub/turf_dart/pull/123)
- Implements `polygonSmooth` function [#127](https://github.com/dartclub/turf_dart/pull/127)
- Fixes missing parameter in nearest point on line [#145](https://github.com/dartclub/turf_dart/pull/145)
- Other core improvements
- Support for Dart 3

## 0.0.7

- Implements `nearestPointOn(Multi)Line` [#87](https://github.com/dartclub/turf_dart/pull/87)
Expand Down Expand Up @@ -25,10 +36,9 @@
- Documentation: improves pub.dev scores, raised documentation coverage, fixed typos
- Return type fixes for the the meta extensions


## 0.0.5

- Implements *all* meta functions and`lineSegment`
- Implements *all* meta functions and`lineSegment`
- Adds a lot of documentation
- Several bug and type fixes

Expand Down
67 changes: 56 additions & 11 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,68 @@
Welcome and thank you for deciding to contribute to the project!

Here is how cooperation works perfectly at [Turf Dart](https://github.com/dartclub/turf_dart)

#### Table of Contents
- [Code of Conduct](#code-of-conduct)
- [Get started](#get-started)
- [Structure of modules](#structure-of-modules)
- [Implementation Process](#implementation-process)
- [Documentation](#documentation)
- [GeoJSON object model](#GeoJSON-object-model)

- [Code of Conduct](#code-of-conduct)
- [Get started](#get-started)
- [Structure of modules](#structure-of-modules)
- [Implementation Process](#implementation-process)
- [Documentation](#documentation)
- [GeoJSON object model](#GeoJSON-object-model)

## Code of conduct

By participating, you are expected to uphold international human rights and fundamental freedoms!
To put it simply, be kind to each other.
To put it simply, be kind to each other.

## Get started

- Get the [Dart tools](https://dart.dev/tools)
- Clone the repository: ```git clone [email protected]:dartclub/turf_dart.git```
- Navigate to project's folder in terminal & get its dependencies: ```dart pub get```
- Go through [Implementation Process](#implementation-process)
- Import the library in your code and use it. For example:

## Structure of modules
```dart
import 'package:turf/helpers.dart';
import 'package:turf/src/line_segment.dart';
Feature<Polygon> poly = Feature<Polygon>(
geometry: Polygon(coordinates: [
[
Position(0, 0),
Position(2, 2),
Position(0, 1),
Position(0, 0),
],
[
Position(0, 0),
Position(1, 1),
Position(0, 1),
Position(0, 0),
],
]),
);
var total = segmentReduce<int>(poly, (previousValue,
currentSegment,
initialValue,
featureIndex,
multiFeatureIndex,
geometryIndex,
segmentIndex) {
if (previousValue != null) {
previousValue++;
}
return previousValue;
}, 0, combineNestedGeometries: false);
// total.length == 6
```

## Structure of modules

```text
TURF_DART/lib/<MODULE NAME>.dart // public facing API, exports the implementation
│ │
│ └───src/<MODULE NAME>.dart // the implementation
Expand All @@ -31,7 +73,9 @@ TURF_DART/lib/<MODULE NAME>.dart // public facing API, exports the implementatio
└───test/components/<MODULE NAME>_test.dart // all the related tests
```

## Implementation process

- Check the Backlog/Issues for similar issues
- Create a new branch _feature-_ from _main_
- Create a _draft Pull request_, mention in it the associated issues
Expand All @@ -44,16 +88,17 @@ TURF_DART/lib/<MODULE NAME>.dart // public facing API, exports the implementatio
- run the benchmark: ```dart pub run benchmark```
- Commit
- Convert to real Pull request _ready for review_
- Code review / mention a reviewer from [contributors list](https://github.com/dartclub/turf_dart/graphs/contributors)

- Code review / mention a reviewer from [contributors list](https://github.com/dartclub/turf_dart/graphs/contributors)

## Documentation

We follow [Effective Dart](https://dart.dev/guides/language/effective-dart/documentation) guidelines for documentation.

After going through the [Implementation Process](#implementation-process), please mention the made changes in [README.md](https://github.com/dartclub/turf_dart/blob/main/README.md)

In order to add to this very documentation, please develop CONTRIBUTING.md in [documentation branch](https://github.com/dartclub/turf_dart/tree/documentation)

## GeoJSON Object Model

If you have not read our [README.md](https://github.com/dartclub/turf_dart/blob/main/README.md) this diagram will give you a lot of information. Please consider looking our [notable design decisions](https://github.com/dartclub/turf_dart/blob/main/README.md#notable-design-decisions).
![polymorphism](https://user-images.githubusercontent.com/10634693/159876354-f9da2f37-02b3-4546-b32a-c0f82c372272.png)
![polymorphism](https://user-images.githubusercontent.com/10634693/159876354-f9da2f37-02b3-4546-b32a-c0f82c372272.png)
67 changes: 46 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# turf.dart

ℹ️ Looking for maintainers as a work student position in Germany: Write an email to [[email protected]](mailto:[email protected]) ℹ️

[![pub package](https://img.shields.io/pub/v/turf.svg)](https://pub.dev/packages/turf)

THIS PROJECT IS WORK IN PROCESS
Expand All @@ -11,9 +13,11 @@ This includes a fully [RFC 7946](https://tools.ietf.org/html/rfc7946)-compliant
Most of the implementation is a direct translation from [turf.js](https://github.com/Turfjs/turf).

## Get started

- Get the [Dart tools](https://dart.dev/tools)
- Install the library with `dart pub add turf`
- Import the library in your code and use it. For example:

```dart
import 'package:turf/helpers.dart';
import 'package:turf/src/line_segment.dart';
Expand All @@ -35,7 +39,7 @@ Feature<Polygon> poly = Feature<Polygon>(
]),
);
main() {
void main() {
var total = segmentReduce<int>(
poly,
(previousValue, currentSegment, initialValue, featureIndex,
Expand All @@ -58,12 +62,14 @@ main() {
![polymorphism](https://user-images.githubusercontent.com/10634693/159876354-f9da2f37-02b3-4546-b32a-c0f82c372272.png)

## Notable Design Decisions

- Nested `GeometryCollections` (as described in
[RFC 7946 section 3.1.8](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.8))
are _not supported_ which takes a slightly firmer stance than the "should
avoid" language in the specification

## Tests and Benchmarks

Tests are run with `dart test` and benchmarks can be run with
`dart run benchmark`

Expand All @@ -73,14 +79,15 @@ Any new benchmarks must be named `*_benchmark.dart` and reside in the
## Components

### Measurement

- [ ] along
- [ ] area
- [x] [area](https://github.com/dartclub/turf_dart/blob/main/lib/src/area.dart)
- [x] [bbox](https://github.com/dartclub/turf_dart/blob/main/lib/src/bbox.dart)
- [x] [bboxPolygon](https://github.com/dartclub/turf_dart/blob/main/lib/src/bbox_polygon.dart)
- [x] [bearing](https://github.com/dartclub/turf_dart/blob/main/lib/src/bearing.dart)
- [x] [center](https://github.com/Dennis-Mwea/turf_dart/blob/main/lib/src/center.dart)
- [ ] centerOfMass
- [ ] centroid
- [x] [centroid](https://github.com/dartclub/turf_dart/blob/main/lib/src/centroid.dart)
- [x] [destination](https://github.com/dartclub/turf_dart/blob/main/lib/src/destination.dart)
- [x] [distance](https://github.com/dartclub/turf_dart/blob/main/lib/src/distance.dart)
- [ ] envelope
Expand All @@ -90,19 +97,21 @@ Any new benchmarks must be named `*_benchmark.dart` and reside in the
- [ ] polygonTangents
- [ ] pointToLineDistance
- [x] [rhumbBearing](https://github.com/dartclub/turf_dart/blob/main/lib/src/rhumb_bearing.dart)
- [ ] rhumbDestination
- [ ] rhumbDistance
- [x] [rhumbDestination](https://github.com/dartclub/turf_dart/blob/main/lib/src/rhumb_destination.dart)
- [x] [rhumbDistance](https://github.com/dartclub/turf_dart/blob/main/lib/src/rhumb_distance.dart)
- [ ] square
- [ ] greatCircle

### Coordinate Mutation

- [x] [cleanCoords](https://github.com/dartclub/turf_dart/blob/main/lib/src/clean_coords.dart)
- [ ] flip
- [ ] rewind
- [ ] round
- [x] [truncate](https://github.com/dartclub/turf_dart/blob/main/lib/src/truncate.dart)

### Transformation

- [ ] bboxClip
- [ ] bezierSpline
- [ ] buffer
Expand All @@ -114,17 +123,18 @@ Any new benchmarks must be named `*_benchmark.dart` and reside in the
- [ ] dissolve
- [ ] intersect
- [ ] lineOffset
- [ ] polygonSmooth
- [x] [polygonSmooth](ttps://github.com/dartclub/turf_dart/blob/main/lib/src/polygon_smooth.dart)
- [ ] simplify
- [ ] tesselate
- [ ] transformRotate
- [x] [transformRotate](https://github.com/dartclub/turf_dart/blob/main/lib/src/transform_rotate.dart)
- [ ] transformTranslate
- [ ] transformScale
- [ ] union
- [ ] voronoi
- [x] [polyLineDecode](https://github.com/Dennis-Mwea/turf_dart/blob/main/lib/src/polyline.dart)
- [x] [polyLineDecode](https://github.com/dartclub/turf_dart/blob/main/lib/src/polyline.dart)

### Feature Conversion

- [ ] combine
- [x] [explode](https://github.com/dartclub/turf_dart/blob/main/lib/src/explode.dart)
- [ ] flatten
Expand All @@ -133,11 +143,12 @@ Any new benchmarks must be named `*_benchmark.dart` and reside in the
- [x] [polygonToLine](https://github.com/dartclub/turf_dart/blob/main/lib/src/polygon_to_line.dart)

### MISC

- [ ] ellipse
- [ ] kinks
- [ ] lineArc
- [ ] lineChunk
- [ ] lineIntersect
- [ ] [lineIntersect](https://github.com/dartclub/turf_dart/blob/main/lib/src/line_intersect.dart)
- [ ] lineOverlap
- [x] [lineSegment](https://github.com/dartclub/turf_dart/blob/main/lib/src/line_segment.dart)
- [ ] lineSlice
Expand All @@ -150,49 +161,55 @@ Any new benchmarks must be named `*_benchmark.dart` and reside in the
- [ ] unkinkPolygon

### Random

- [ ] randomPosition
- [ ] randomPoint
- [ ] randomLineString
- [ ] randomPolygon

### Data

- [ ] sample

### Interpolation

- [ ] interpolate
- [ ] isobands
- [ ] isolines
- [ ] planepoint
- [ ] tin

### Joins

- [ ] pointsWithinPolygon
- [ ] tag

### Grids

- [ ] hexGrid
- [ ] pointGrid
- [ ] squareGrid
- [ ] triangleGrid

### Classification

- [x] [nearestPoint](https://github.com/dartclub/turf_dart/blob/main/lib/src/nearest_point.dart)

### Aggregation

- [ ] collect
- [ ] clustersDbscan
- [ ] clustersKmeans

### META

- [x] [coordAll](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/coord.dart)
- [x] [coordEach](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/coord.dart)
- [x] [coordReduce](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/coord.dart)
- [x] [featureEach](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/feature.dart)
- [x] [featureReduce](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/feature.dart)
- [x] [flattenEach](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/flatten.dart)
- [x] [flattenReduce](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/flatten.dart)
- [x] [getCoord](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/coord.dart)
- [x] [getCoords](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/coord.dart)
- [x] [geomEach](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/geom.dart)
- [x] [geomReduce](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/geom.dart)
- [x] [propEach](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/prop.dart)
Expand All @@ -203,21 +220,29 @@ Any new benchmarks must be named `*_benchmark.dart` and reside in the
- [x] [clusterEach](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/cluster.dart)
- [x] [clusterReduce](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/cluster.dart)

### Invariants

- [x] [getCoord](https://github.com/dartclub/turf_dart/blob/main/lib/src/meta/coord.dart)
- [x] [getCoords](https://github.com/dartclub/turf_dart/blob/main/lib/src/invariant.dart)
- [x] [getGeom](https://github.com/dartclub/turf_dart/blob/main/lib/src/invariant.dart)

### Booleans
- [ ] booleanClockwise
- [ ] booleanConcave
- [ ] booleanContains
- [ ] booleanCrosses
- [ ] booleanDisjoint
- [ ] booleanEqual
- [ ] booleanIntersects

- [x] [booleanClockwise](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_clockwise.dart)
- [x] [booleanConcave](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_concave.dart)
- [x] [booleanContains](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_contains.dart)
- [x] [booleanCrosses](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_crosses.dart)
- [x] [booleanDisjoint](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_disjoint.dart)
- [x] [booleanEqual](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_equal.dart)
- [x] [booleanIntersects](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_intersect.dart)
- [ ] booleanOverlap
- [ ] booleanParallel
- [ ] booleanPointInPolygon
- [ ] booleanPointOnLine
- [x] [booleanParallel](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_parallel.dart)
- [x] [booleanPointInPolygon](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_point_in_polygon.dart)
- [x] [booleanPointOnLine](https://github.com/dartclub/turf_dart/blob/main/lib/src/booleans/boolean_point_on_line.dart)
- [ ] booleanWithin

### Unit Conversion

- [x] [bearingToAzimuth](https://github.com/dartclub/turf_dart/blob/main/lib/src/helpers.dart)
- [x] [convertArea](https://github.com/dartclub/turf_dart/blob/main/lib/src/helpers.dart)
- [x] [convertLength](https://github.com/dartclub/turf_dart/blob/main/lib/src/helpers.dart)
Expand Down
4 changes: 2 additions & 2 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
include: package:dartclub_lint/dart.yaml
include: package:lints/recommended.yaml

analyzer:
errors:
prefer_generic_function_type_aliases: error
prefer_generic_function_type_aliases: error
25 changes: 25 additions & 0 deletions benchmark/area_benchmark.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import 'package:benchmark/benchmark.dart';
import 'package:turf/turf.dart';

Feature<Polygon> poly = Feature<Polygon>(
geometry: Polygon(coordinates: [
[
Position(125, -15),
Position(113, -22),
Position(117, -37),
Position(130, -33),
Position(148, -39),
Position(154, -27),
Position(144, -15),
Position(125, -15)
]
]),
);

void main() {
group('area', () {
benchmark('simple', () {
area(poly);
});
});
}
2 changes: 1 addition & 1 deletion benchmark/explode_benchmark.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ var poly = Polygon(coordinates: [
],
]);

main() {
void main() {
group('explode', () {
benchmark('simple', () {
explode(poly);
Expand Down
Loading

0 comments on commit 4c4c924

Please sign in to comment.