JTS Topology Suite
|Original author(s)||Martin Davis|
|Stable release||1.13 / December 13, 2012|
|License||GNU Lesser General Public License|
The Java Topology Suite (JTS) is an open source Java software library that provides an object model for Euclidean planar linear geometry together with a set of fundamental geometric functions. JTS is primarily intended to be used as a core component of vector-based geomatics software such as geographical information systems. It can also be used as a general-purpose library providing algorithms in computational geometry.
JTS provides a foundation for building further spatial applications, such as viewers, spatial query processors, and tools for performing data validation, cleaning and integration.
The software is published under the GNU Lesser General Public License (LGPL).
JTS provides the following functionality:
Geometry classes support modelling points, linestrings, polygons, and collections. Geometries are linear, in the sense that boundaries are implicitly defined by linear interpolation between vertices. Geometries are embedded in the 2-dimensional Euclidean plane. Geometry vertices may also carry a Z value.
User-defined precision models are supported for geometry coordinates. Computation is performed using algorithms which provide robust geometric computation under all precision models.
- Topological validity checking
- Area and Distance functions
- Spatial Predicates based on the Egenhofer DE-9IM model
- Overlay functions (including intersection, difference, union, symmetric difference)
- Buffer computation (including different cap and join types)
- Convex hull
- Geometric simplification including the Douglas–Peucker algorithm
- Geometric densification
- Linear referencing
- Precision reduction
- Delaunay triangulation and constrained Delaunay triangulation
- Voronoi diagram generation
- Smallest enclosing rectangle
- Discrete Hausdorff distance
Spatial structures and algorithms
- Robust line segment intersection
- Efficient line arrangement intersection or noding
- Efficient point in polygon
- Spatial index structures including quadtree and STR-tree
- Planar graph structures and algorithms
Funding for the initial work on JTS was obtained in the Fall 2000 from GeoConnections and the Government of British Columbia, based on a proposal put forward by Mark Sondheim and David Skea. The work was carried out by Martin Davis (software design and lead developer) and Jonathan Aquino (developer), both of Vivid Solutions at the time. Since then JTS has been maintained as an independent software project by Martin Davis.
JTS is developed under the Java JDK 1.4 platform. It is 100% pure Java. It will run on all more recent JDKs as well.
JTS has been ported to the .NET Framework as the Net Topology Suite.
Projects using JTS
- Hibernate Spatial
- Whitebox Geospatial Analysis Tools
- "The 2012 Free and Open Source GIS Software Map – A Guide to facilitate Research, Development and Adoption", S. Steiniger and A.J.S. Hunter
- "Secrets of the JTS Topology Suite - M. Davis" (PDF). Retrieved 2013-05-27.
- A Formal Definition of Binary Topological Relationships by Max Egenhofer
- "History of JTS and GEOS - M. Davis". Retrieved 2013-05-27.