# Home

## Esri Java Geometry Library

API Reference

Samples @ https://github.com/Esri/samples-geometry-api-java

• ##### Native Geometry Types

Geometries can have attributes Z, M, ID. All geometries support Affine Transformations in 2D space.

• ##### OGC Geometry Types

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.

• ##### Topological operations

Boolean operations on Polygons, Polylines, Points and MultiPoints.

• ##### Other operations
• 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

#### Accelerators

• 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.

#### Tolerance

• 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.