JTS Topology Suite
Encyclopedia
The JTS Topology Suite 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 algorithm
s 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).
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
Spatial structures and algorithms
I/O capabilities
See also History of JTS and GEOS
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.
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
software library that provides an object model for Euclidean
Euclidean geometry
Euclidean geometry is a mathematical system attributed to the Alexandrian Greek mathematician Euclid, which he described in his textbook on geometry: the Elements. Euclid's method consists in assuming a small set of intuitively appealing axioms, and deducing many other propositions from these...
planar linear geometry
Geometry
Geometry arose as the field of knowledge dealing with spatial relationships. Geometry was one of the two fields of pre-modern mathematics, the other being the study of numbers ....
together with a set of fundamental geometric functions. JTS is primarily intended to be used as a core component of vector-based geomatics
Geomatics
Geomatics is the discipline of gathering, storing, processing, and delivering geographic information, or spatially referenced information.-Overview and etymology:...
software such as geographical information systems. It can also be used as a general-purpose library providing algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
s in computational geometry
Computational geometry
Computational geometry is a branch of computer science devoted to the study of algorithms which can be stated in terms of geometry. Some purely geometrical problems arise out of the study of computational geometric algorithms, and such problems are also considered to be part of computational...
.
JTS implements the geometry model and API defined in the OpenGIS Consortium Simple Features Specification for SQL
Simple Features
Simple feature access , is both an OpenGIS and ISO Standard that specifies a common storage model of geographical data using well-known text . The geometries are also associated with spatial reference systems...
.
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
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...
(LGPL).
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-9IMDE-9IMIn geometry, a dimensionally extended nine-intersection model is a topological model used to describe the spatial relation of two geometries in two-dimensions...
model - Overlay functions (including intersectionIntersection (set theory)In mathematics, the intersection of two sets A and B is the set that contains all elements of A that also belong to B , but no other elements....
, differenceComplement (set theory)In set theory, a complement of a set A refers to things not in , A. The relative complement of A with respect to a set B, is the set of elements in B but not in A...
, unionUnion (set theory)In set theory, the union of a collection of sets is the set of all distinct elements in the collection. The union of a collection of sets S_1, S_2, S_3, \dots , S_n\,\! gives a set S_1 \cup S_2 \cup S_3 \cup \dots \cup S_n.- Definition :...
, symmetric differenceSymmetric differenceIn mathematics, the symmetric difference of two sets is the set of elements which are in either of the sets and not in their intersection. The symmetric difference of the sets A and B is commonly denoted by A\,\Delta\,B\,orA \ominus B....
) - BufferBuffer (GIS)A buffer in GIS is a zone around a map feature measured in units of distance or time. A buffer is useful for proximity analysis.A buffer is an area defined by the bounding region determined by a set of points at a specified maximum distance from all nodes along segments of an object....
computation (including different cap and join types) - Convex hullConvex hullIn mathematics, the convex hull or convex envelope for a set of points X in a real vector space V is the minimal convex set containing X....
- Geometric simplificationCartographic generalizationCartographic generalization is the method whereby information is selected and represented on a map in a way that adapts to the scale of the display medium of the map, not necessarily preserving all intricate geographical or other cartographic details...
including the Douglas–Peucker algorithm - Geometric densification
- Linear referencingLinear Reference SystemLinear referencing , is a reference system in which the locations of features are identified by a relative measure along a linear element, for example a milestone along a road. Each feature is located by either a point or a line...
- Precision reduction
- Delaunay triangulationDelaunay triangulationIn mathematics and computational geometry, a Delaunay triangulation for a set P of points in a plane is a triangulation DT such that no point in P is inside the circumcircle of any triangle in DT. Delaunay triangulations maximize the minimum angle of all the angles of the triangles in the...
and constrained Delaunay triangulation - Voronoi diagramVoronoi diagramIn mathematics, a Voronoi diagram is a special kind of decomposition of a given space, e.g., a metric space, determined by distances to a specified family of objects in the space...
generation - Smallest enclosing rectangle
- Discrete Hausdorff distanceHausdorff distanceIn mathematics, the Hausdorff distance, or Hausdorff metric, also called Pompeiu–Hausdorff distance, measures how far two subsets of a metric space are from each other. It turns the set of non-empty compact subsets of a metric space into a metric space in its own right...
Spatial structures and algorithms
- Robust line segment intersection
- Efficient line arrangement intersectionLine segment intersectionIn computational geometry, the line segment intersection problem supplies a list of line segments in the plane and asks us to determine whether any two of them intersect, or cross....
or noding - Efficient point in polygonPoint in polygonIn computational geometry, the point-in-polygon problem asks whether a given point in the plane lies inside, outside, or on the boundary of a polygon...
- Spatial index structures including quadtreeQuadtreeA quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are most often used to partition a two dimensional space by recursively subdividing it into four quadrants or regions. The regions may be square or rectangular, or may have arbitrary shapes. This...
and STR-treeR-treeR-trees are tree data structures used for spatial access methods, i.e., for indexing multi-dimensional information such as geographical coordinates, rectangles or polygons. The R-tree was proposed by Antonin Guttman in 1984 and has found significant use in both research and real-world applications... - Planar graphPlanar graphIn graph theory, a planar graph is a graph that can be embedded in the plane, i.e., it can be drawn on the plane in such a way that its edges intersect only at their endpoints...
structures and algorithms
I/O capabilities
- Reading and writing of WKTWell-known textWell-known text is a text markup language for representing vector geometry objects on a map, spatial reference systems of spatial objects and transformations between spatial reference systems. A binary equivalent, known as well-known binary is used to transfer and store the same information on...
, WKBWell-known textWell-known text is a text markup language for representing vector geometry objects on a map, spatial reference systems of spatial objects and transformations between spatial reference systems. A binary equivalent, known as well-known binary is used to transfer and store the same information on...
and GMLGeography Markup LanguageThe Geography Markup Language is the XML grammar defined by the Open Geospatial Consortium to express geographical features. GML serves as a modeling language for geographic systems as well as an open interchange format for geographic transactions on the Internet...
formats
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
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++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
as the GEOS library.
JTS has been ported to the .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
as the Net Topology Suite.
Projects using JTS
- BatikBatik (software)Batik is a pure-Java library that can be used to render, generate, and manipulate SVG graphics. IBM supported the project and then donated the code to the Apache Software Foundation, where other companies and teams decided to join efforts.Batik provides a set of core modules that provide...
- GeoServerGeoServerIn computing, GeoServer - an open-source server written in Java - allows users to share and edit geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards...
- GeoToolsGeoToolsGeoTools is a free software GIS toolkit for developing standards compliant solutions.It provides an implementation of Open Geospatial Consortium specifications as they are developed...
- gvSIGGvSIGgvSIG is a geographic information system , that is, a desktop application designed for capturing, storing, handling, analyzing and deploying any kind of referenced geographic information in order to solve complex management and planning problems. gvSIG is known for having a user-friendly interface,...
- OpenJUMP
- uDigUDiguDig is a GIS software program produced by a community led by Canadian-based consulting company Refractions Research. It is based on the Eclipse platform and features full layered Open Source GIS...
- StraightEdge
- OpenTripPlanner
See also
- Point-in-polygon (PIP) problemPoint in polygonIn computational geometry, the point-in-polygon problem asks whether a given point in the plane lies inside, outside, or on the boundary of a polygon...
- Well-known text (WKT)Well-known textWell-known text is a text markup language for representing vector geometry objects on a map, spatial reference systems of spatial objects and transformations between spatial reference systems. A binary equivalent, known as well-known binary is used to transfer and store the same information on...
- GEOS
- Simple Features Specification for SQLSimple FeaturesSimple feature access , is both an OpenGIS and ISO Standard that specifies a common storage model of geographical data using well-known text . The geometries are also associated with spatial reference systems...