Skip to content

nealsanche/simplify-java

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

simplify-java

Simplification of a 2D-polyline or a 3D-polyline.

  • Uses Radial-Distance algorithm (fast) or Douglas-Peucker (high quality) algorithm
  • Port of mourner / simplify-js, a High-performance JavaScript 2D/3D polyline simplification library by Vladimir Agafonkin
  • Can handle arbitrary objects carrying coordinates (2D, 3D)
    • either by implementing an interface
    • or by providing a helper extracting the coordinates
  • Leaves the objects untouched, just creates a new array referencing the simplified points
  • requires Java 5
  • Maven Build
  • JUnit-tested
    • 94% lines covered
    • reference data is created by "original" JavaScript implementation (Version 1.1.0)

Example

    // create an instance of the simplifier (empty array needed by List.toArray)
    Simplify<Point> simplify = new Simplify<Point>(new MyPoint[0]);

    // here we have an array with hundreds of points
    Point[] allPoints = ...
    double tolerance = ...
    boolean highQuality = true; // Douglas-Peucker, false for Radial-Distance

    // run simplification process
    Point[] lessPoints = simplify.simplify(allPoints, tolerance, highQuality);

For more examples see src/test/java/**/*Test.

Licence

TODO

Alternatives / Infos

About

Simplification of a 2D-polyline or a 3D-polyline

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages