Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement polygon-smooth and its tests #127

Merged
merged 3 commits into from Aug 22, 2022
Merged

Conversation

lukas-h
Copy link
Member

@lukas-h lukas-h commented Aug 21, 2022

@lukas-h lukas-h marked this pull request as ready for review August 21, 2022 10:19
Copy link
Contributor

@armantorkzaban armantorkzaban left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well done. Thank you!
Can't we test with lineIntersect prior to smoothing to warn/prevent creation of degenerate Polygons? @lukas-h

@armantorkzaban armantorkzaban merged commit f503b90 into main Aug 22, 2022
lukas-h added a commit that referenced this pull request Jun 13, 2023
* 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 <armantorkzaban@Armans-MacBook-Pro.local>

Co-authored-by: arman <armantorkzaban@icloud.com>
Co-authored-by: arman <armantorkzaban@users.noreply.github.com>
Co-authored-by: Arman Torkzaban <armantorkzaban@Armans-MacBook-Pro.local>

* 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 <lukas@himsel.me>

* 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 <tobrun.van.nuland@gmail.com>

* 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 <lukas@himsel.me>

* 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 <armantorkzaban@icloud.com>
Co-authored-by: Lukas Himsel <lukas@himsel.me>

* 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 <armantorkzaban@icloud.com>

* 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 <armantorkzaban@icloud.com>

* 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 <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <levente95@gmail.com>

* localIndex and index

* add documentation

* Fix `globalIndex` behaviour

Co-authored-by: Levente Morva <levente95@gmail.com>

* fix test, according to new globalIndex behaviour

* add intersection test

Co-authored-by: Levente Morva <levente95@gmail.com>

* Port explode function and test (#93)

* initial version without tests

* closes #93

* updated readme for explode

* fixed formatting

Co-authored-by: armantorkzaban <armantorkzaban@icloud.com>

* 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 <mweadennis2@gmail.com>
Co-authored-by: Lukas Himsel <lukas@himsel.me>

* 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 <mweadennis2@gmail.com>
Co-authored-by: Lukas Himsel <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <yarden.fishler@prospera.ag>

* 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 <lukas@himsel.me>

* 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 <baparham@gmail.com>
Co-authored-by: Tobrun <tobrun.van.nuland@gmail.com>
Co-authored-by: arman <armantorkzaban@icloud.com>
Co-authored-by: arman <armantorkzaban@users.noreply.github.com>
Co-authored-by: Arman Torkzaban <armantorkzaban@Armans-MacBook-Pro.local>
Co-authored-by: Levente Morva <levente95@gmail.com>
Co-authored-by: Dennis Mwea <mweadennis2@gmail.com>
Co-authored-by: yardenfi <yarden.fishler@gmail.com>
Co-authored-by: yarden <yarden.fishler@prospera.ag>
Co-authored-by: Kangmin An <hkkm612@gmail.com>
Co-authored-by: ggastv <ggastv@gmail.com>
lukas-h added a commit that referenced this pull request Feb 1, 2024
* 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 <armantorkzaban@Armans-MacBook-Pro.local>

Co-authored-by: arman <armantorkzaban@icloud.com>
Co-authored-by: arman <armantorkzaban@users.noreply.github.com>
Co-authored-by: Arman Torkzaban <armantorkzaban@Armans-MacBook-Pro.local>

* 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 <lukas@himsel.me>

* 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 <tobrun.van.nuland@gmail.com>

* 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 <lukas@himsel.me>

* 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 <armantorkzaban@icloud.com>
Co-authored-by: Lukas Himsel <lukas@himsel.me>

* 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 <armantorkzaban@icloud.com>

* 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 <armantorkzaban@icloud.com>

* 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 <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <levente95@gmail.com>

* localIndex and index

* add documentation

* Fix `globalIndex` behaviour

Co-authored-by: Levente Morva <levente95@gmail.com>

* fix test, according to new globalIndex behaviour

* add intersection test

Co-authored-by: Levente Morva <levente95@gmail.com>

* Port explode function and test (#93)

* initial version without tests

* closes #93

* updated readme for explode

* fixed formatting

Co-authored-by: armantorkzaban <armantorkzaban@icloud.com>

* 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 <mweadennis2@gmail.com>
Co-authored-by: Lukas Himsel <lukas@himsel.me>

* 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 <mweadennis2@gmail.com>
Co-authored-by: Lukas Himsel <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <lukas@himsel.me>

* 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 <yarden.fishler@prospera.ag>

* 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 <lukas@himsel.me>

* 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

* Document properties set by NearestPointOnLine on returned Point (#155)

* Implement length and along (#153)

* Implement length with tests

* Implement along with tests

* Fix export added functions

* Document along behaviour when distance is outside line length range

* Format along test

* Change length and along to accept Feature<LineString> instead of LineString

* Change length to never return null.

To my understanding, the reason why segmentReduce in its signature
may return null is due to initialValue may be null, but in length()
we supply 0.0 as the default.

* Change along to throw Exception when empty line is passed instead of returning null

It appears to be more in line with how turf.js operates and also
existing error handling in turf_dart.

* Change along to count from back when distance is negative

I raised an issue with turf.js about behavour being undefined
when distance is zero and they where in favour of counting from
back behavour over clamping to the end. I think it is best to
use same behavour as upstream turf.js so changing to their
solution.

* Update along test for negative distance

* Fix along test for negative distance

* Add along test using default unit

* Add test of length() using default unit

* Fix docs for along() when distance is negative

* Change along() implementation to handle travelled == distance eagerly

* Fix length_test.dart formatting (#159)

* Change return type of along to Feature<Point> (#161)

This goes along with preferring to pass around full Features,
and it allow to in the future set properties on the returned
point without it being a breaking change.

* Prepare release 0.0.9 (#162)

* Update Dart SDK version in pubspec.yaml

* Update README.md

* Remove .DS_Store files

* Update changelog

* Update package version to 0.0.9

* Update dependencies

* Entfernt .DS_Store

* Remove job offer

---------

Co-authored-by: Lukas Himsel <lukas@himsel.me>
Co-authored-by: Brad Parham <baparham@gmail.com>
Co-authored-by: Tobrun <tobrun.van.nuland@gmail.com>
Co-authored-by: arman <armantorkzaban@icloud.com>
Co-authored-by: arman <armantorkzaban@users.noreply.github.com>
Co-authored-by: Arman Torkzaban <armantorkzaban@Armans-MacBook-Pro.local>
Co-authored-by: Levente Morva <levente95@gmail.com>
Co-authored-by: Dennis Mwea <mweadennis2@gmail.com>
Co-authored-by: yardenfi <yarden.fishler@gmail.com>
Co-authored-by: yarden <yarden.fishler@prospera.ag>
Co-authored-by: Kangmin An <hkkm612@gmail.com>
Co-authored-by: ggastv <ggastv@gmail.com>
Co-authored-by: L Linse <leif.linse@gmail.com>
Co-authored-by: Leif Linse <118986082+leiflinse-trivector@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants