JTS Topology Suite
   HOME

TheInfoList



OR:

JTS Topology Suite (Java Topology Suite) is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
software library In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
that provides an object model for Euclidean planar linear
geometry Geometry (; ) is a branch of mathematics concerned with properties of space such as the distance, shape, size, and relative position of figures. Geometry is, along with arithmetic, one of the oldest branches of mathematics. A mathematician w ...
together with a set of fundamental geometric functions. JTS is primarily intended to be used as a core component of vector-based
geomatics Geomatics is defined in the ISO/TC 211 series of standards as the "discipline concerned with the collection, distribution, storage, analysis, processing, presentation of geographic data or geographic information". Under another definition, it ...
software such as
geographical information system A geographic information system (GIS) consists of integrated computer hardware and software that store, manage, analyze, edit, output, and visualize geographic data. Much of this often happens within a spatial database; however, this is not ...
s."The 2012 Free and Open Source GIS Software Map – A Guide to facilitate Research, Development and Adoption"
, S. Steiniger and A.J.S. Hunter
It can also be used as a general-purpose library providing
algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
s in computational geometry. JTS implements the geometry model and API defined in the OpenGIS Consortium Simple Features Specification for SQL. JTS defines a standards-compliant geometry system for building spatial applications; examples include viewers, spatial query processors, and tools for performing data validation, cleaning and integration. In addition to the Java library, the foundations of JTS and selected functions are maintained in a C++ port, for use in C-style linking on all major operating systems, in the form of the GEOS software library. Up to JTS 1.14, and the GEOS port, are published under the
GNU Lesser General Public License The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL). With the LocationTech adoption future releases will be under the EPL/BSD licenses.


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 The Dimensionally Extended 9-Intersection Model (DE-9IM) is a topological Interpretation (logic), model and a Specification (technical standard), standard used to describe the spatial relations of two regions (two 2D geometric model, geometries ...
model * Overlay functions (including
intersection In mathematics, the intersection of two or more objects is another object consisting of everything that is contained in all of the objects simultaneously. For example, in Euclidean geometry, when two lines in a plane are not parallel, their ...
,
difference Difference commonly refers to: * Difference (philosophy), the set of properties by which items are distinguished * Difference (mathematics), the result of a subtraction Difference, The Difference, Differences or Differently may also refer to: Mu ...
, union,
symmetric difference In mathematics, the symmetric difference of two sets, also known as the disjunctive union and set sum, is the set of elements which are in either of the sets, but not in their intersection. For example, the symmetric difference of the sets \ and ...
) *
Buffer Buffer may refer to: Science * Buffer gas, an inert or nonflammable gas * Buffer solution, a solution used to prevent changes in pH * Lysis buffer, in cell biology * Metal ion buffer * Mineral redox buffer, in geology Technology and engineeri ...
computation (including different cap and join types) *
Convex hull In geometry, the convex hull, convex envelope or convex closure of a shape is the smallest convex set that contains it. The convex hull may be defined either as the intersection of all convex sets containing a given subset of a Euclidean space, ...
* Geometric simplification including the Douglas–Peucker algorithm * Geometric densification *
Linear referencing Linear referencing, also called linear reference system or linear referencing system (LRS), is a method of spatial referencing over linear or curvilinear elements, such as roads or rivers. In LRS, the locations of physical features are described ...
* Precision reduction *
Delaunay triangulation In computational geometry, a Delaunay triangulation or Delone triangulation of a set of points in the plane subdivides their convex hull into triangles whose circumcircles do not contain any of the points; that is, each circumcircle has its gen ...
and constrained Delaunay triangulation *
Voronoi diagram In mathematics, a Voronoi diagram is a partition of a plane into regions close to each of a given set of objects. It can be classified also as a tessellation. In the simplest case, these objects are just finitely many points in the plane (calle ...
generation *
Smallest enclosing rectangle In computational geometry, the smallest enclosing box problem is that of finding the Minimum bounding box#Arbitrarily oriented minimum bounding box, oriented minimum bounding box enclosing a set of points. It is a type of bounding volume. "Smallest" ...
* Discrete
Hausdorff distance In 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 set, non-empty compact space, compact subsets o ...


Spatial structures and algorithms

* Robust line segment intersection * Efficient line arrangement intersection * Efficient
point in polygon In computational geometry, the point-in-polygon (PIP) problem asks whether a given point in the plane lies inside, outside, or on the boundary of a polygon. It is a special case of point location problems and finds applications in areas that deal ...
*
Spatial index A spatial database is a general-purpose database (usually a relational database) that has been enhanced to include spatial data that represents objects defined in a geometric space, along with tools for querying and analyzing such data. Most ...
structures including
quadtree A quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are the two-dimensional analog of octrees and are most often used to partition a two-dimensional space by recursively subdividing it into four ...
and STR-tree *
Planar graph In graph theory, a planar graph is a graph (discrete mathematics), graph that can be graph embedding, embedded in the plane (geometry), 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 WKT, WKB and GML 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. Since late 2016/early 2017 JTS has been adopted by LocationTech.


Projects using JTS

*
GeoServer In computing, GeoServer is an open-source server written in Java that allows users to share, process and edit geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards. GeoServer h ...
* GeoTools * OpenJUMP and forks * uDig *
gvSIG gvSIG, geographic information system (GIS), 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. gv ...
*
Batik Batik is a dyeing technique using wax Resist dyeing, resist. The term is also used to describe patterned textiles created with that technique. Batik is made by drawing or stamping wax on a cloth to prevent colour absorption during the dyein ...
* Hibernate Spatial * Whitebox Geospatial Analysis Tools


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 the .NET Framework as the Net Topology Suite. A JTS subset has been ported to C++, with entry points declared as C interfaces, as the GEOS library.


C/C++ port: GEOS

GEOS is the C/C++ port of a subset of JTS and selected functions. It is a foundation component in a software ecosystem of native, compiled executable binaries on Linux, Mac and Windows platforms. Due to the runtime construction of Java and the Java Virtual Machine (JVM), code libraries that are written in Java are basically not usable as libraries from a standardized cross-linking environment (often built from C). Linux, Microsoft Windows and the BSD family, including Mac OSX, use a linking structure that enables libraries from various languages to be integrated (linked) into a native runtime executable. Java, by design, does not participate in this interoperability without unusual measures (''JNI'').


Applications using GEOS

GEOS links and ships internally in popular applications listed below; and, by delineating and implementing standards-based geometry classes available to
GDAL The Geospatial Data Abstraction Library (GDAL) is a computer software library for reading and writing raster and vector geospatial data formats (e.g. shapefile), and is released under the permissive X/MIT style free software license by the ...
, which in turn is a widely supported inner-engine in GIS, GEOS becomes a core geometry implementation in even more applications: *
GDAL The Geospatial Data Abstraction Library (GDAL) is a computer software library for reading and writing raster and vector geospatial data formats (e.g. shapefile), and is released under the permissive X/MIT style free software license by the ...
- OGR - raster and vector data munging *
QGIS QGIS is a geographic information system (GIS) software that is free and open-source. QGIS supports Windows, macOS, and Linux. It supports viewing, editing, printing, and analysis of geospatial data in a range of data formats. Its name comes from ...
- Desktop cross-platform, open source GIS *
PostGIS PostGIS ( ) is an open source software program that adds support for geographic objects to the PostgreSQL object-relational database. PostGIS follows the Simple Features for SQL specification from the Open Geospatial Consortium (OGC). PostGIS is ...
- spatial types and operations for PostgreSQL * GeoDjango – Django's support for GIS-enabled databases *
Google Earth Google Earth is a web mapping, web and computer program created by Google that renders a 3D computer graphics, 3D representation of Earth based primarily on satellite imagery. The program maps the Earth by superimposition, superimposing satelli ...
– A virtual globe and world imaging program *
GRASS Poaceae ( ), also called Gramineae ( ), is a large and nearly ubiquitous family (biology), family of monocotyledonous flowering plants commonly known as grasses. It includes the cereal grasses, bamboos, the grasses of natural grassland and spe ...
GIS Library and Application *
MapServer MapServer is an open-source development environment for building spatially enabled internet applications, built in the C language, and is widely known as one of the fastest Web mapping engines available. It can run as a CGI program or via MapSc ...
- an open source development environment for building spatially enabled internet applications * World Wind Java – NASA's open source virtual globe and world imaging technology *
Orfeo toolbox In computer science, Orfeo Toolbox (OTB) is a software library for processing images from Earth observation satellites. OTB was initiated by the French space agency (CNES) in 2006. The software is released under a free licence; a number of contr ...
– A satellite image processing library * R – Open source statistical software with extensions for spatial data analysis. * SAGA GIS A cross-platform open source GIS software


See also

*
DE-9IM The Dimensionally Extended 9-Intersection Model (DE-9IM) is a topological Interpretation (logic), model and a Specification (technical standard), standard used to describe the spatial relations of two regions (two 2D geometric model, geometries ...
, a topological model *
Geospatial topology Geospatial topology is the study and application of qualitative spatial relationships between geographic features, or between representations of such features in geographic information, such as in geographic information systems (GIS). For examp ...


References


External links

* {{Official website
Net Topology Suite Home page

GEOS Home page
Geometric algorithms Application programming interfaces Free software programmed in Java (programming language) Geographic data and information software Geometric topology