JTS Topology Suite
| Original author(s) | Martin Davis |
|---|---|
| Stable release | 1.12 / June 26, 2011 |
| Written in | Java |
| Platform | Java |
| Type | Library |
| License | GNU Lesser General Public License |
| Website | http://tsusiatsoftware.net/jts/main.html |
The JTS 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 implements the geometry model and API defined in the OpenGIS Consortium Simple Features Specification for SQL.
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).
Contents |
[edit] Scope
JTS provides the following functionality:
Geometry model
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.
Geometric functions
- Topological validity checking
- Area and Distance functions
- Spatial Predicates based on the Egenhofer DE-9IM model [1]
- 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
I/O capabilities
[edit] History
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.
See also History of JTS and GEOS
[edit] Platforms
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 C++ as the GEOS library.
JTS has been ported to the .NET Framework as the Net Topology Suite.
[edit] Projects using JTS
[edit] See also
[edit] References
- ^ A Formal Definition of Binary Topological Relationships by Max Egenhofer