Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Welcome to the Esri Java Geometry Library wiki!
Esri Java Geometry Library
Geometries can have attributes Z, M, ID. All geometries support Affine Transformations in 2D space.
Included OGC Wrappers provide these types.
List of Operations
In geometry-api-java, the geometry is planar with the exception of GeometryEngine.geodesicDistanceOnWGS84. The X/Y values are considered on an infinite plane, and all operations are executed based on that assumption.
Boolean operations on Polygons, Polylines, Points and MultiPoints.
- Simplify - validates and fixes the geometry to be correct for storage in geodatabase
- IsSimple - validates the geometry to be correct for storage in geodatabase
- Simplify with OGC restrictions - validates and fixes the geometry to be correct according to OGC rules
- IsSimple with OGC restrictions - checks if the geometry is correct according to OGC rules
- Boundary - creates a geometry that is the boundary of a given geometry
- Buffer - creates buffer polygon around the given geometry
- Clip - clips geometries with a 2-dimensional envelope
- Convex Hull - creates the convex hull of a given geometry
- Densify - densifies geometries by plotting points between existing vertices
- Distance - calculates the distance between two geometries
- Generalize - simplifies geometries using the Douglas-Peucker algorithm
- Offset - creates geometries that are offset from the input geometries by a given distance
- Proximity - finds the closest point on a geometry to a given point
- Quadtree structure - can be used for spatial indexing
- Geodesic Distance (see geodesicDistanceOnWGS84 in GeometryEngine) - calculates the shortest distance between two points on the WGS84 spheroid
- Certain operations can be accelerated to perform faster when a geometry instance is used over and over. This is achieved using the Operator's accelerateGeometry method. Depending on the acceleration degree, the acceleration builds and attaches to the geometry a quad tree and/or a rasterized representation (a hit map). Presently, some relational operators and some topological operators benefit from the acceleration.
- Relational, Topological, Validation, and some other operators use XY tolerance (aka cluster tolerance) in processing. The tolerance is used to set the minimum distance between coordinates below which the coordinates are considered equal. The tolerance value is derived from the SpatialReference instance and is around 1 mm. This value should match the default value of tolerance in Geodatabase. When SpatialReference instance is not provided (null), the operators use a small value derived from the bounding box of the geometries participating in the operation. The OperatorSimplify, when used together with a SpatialReference instance, will enforce the tolerance value thus ensuring validity of the generated geometry for storing with Geodatabase.