JTS Topology Suite (Java Topology Suite) is an
open-source Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
software library
In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and sub ...
that provides an object model for
Euclidean planar linear
geometry
Geometry (; ) is, with arithmetic, one of the oldest branches of mathematics. It is concerned with properties of space such as the distance, shape, size, and relative position of figures. A mathematician who works in the field of geometry is ...
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) is a type of database containing geographic data (that is, descriptions of phenomena for which location is relevant), combined with software tools for managing, analyzing, and visualizing those data. In a ...
s.
["The 2012 Free and Open Source GIS Software Map – A Guide to facilitate Research, Development and Adoption"](_blank)
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 rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
s in
computational geometry.
JTS implements the geometry model and API defined in the
OpenGIS
The Open Geospatial Consortium (OGC), an international voluntary consensus standards organization for geospatial content and location-based services, sensor web and Internet of Things, GIS data processing and data sharing. It originated in 19 ...
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 model and a standard used to describe the spatial relations of two regions (two geometries in two-dimensions, R2), in geometry, point-set topology, geospatial topology, ...
model
*
Overlay
Overlay may refer to:
Computers
*Overlay network, a computer network which is built on top of another network
*Hardware overlay, one type of video overlay that uses memory dedicated to the application
*Another term for exec, replacing one process ...
functions (including
intersection,
difference
Difference, The Difference, Differences or Differently may refer to:
Music
* ''Difference'' (album), by Dreamtale, 2005
* ''Differently'' (album), by Cassie Davis, 2009
** "Differently" (song), by Cassie Davis, 2009
* ''The Difference'' (al ...
,
union
Union commonly refers to:
* Trade union, an organization of workers
* Union (set theory), in mathematics, a fundamental operation on sets
Union may also refer to:
Arts and entertainment
Music
* Union (band), an American rock group
** ''Un ...
,
symmetric difference
In mathematics, the symmetric difference of two sets, also known as the disjunctive union, 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 \ is \.
Th ...
)
*
Buffer
Buffer may refer to:
Science
* Buffer gas, an inert or nonflammable gas
* Buffer solution, a solution used to prevent changes in pH
* Buffering agent, the weak acid or base in a buffer solution
* Lysis buffer, in cell biology
* Metal ion buffer
* ...
computation (including different cap and join types)
*
Convex hull
* 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 in engineering and construction, in which the locations of physical features along a linear element are described in te ...
* Precision reduction
*
Delaunay triangulation
In mathematics and computational geometry, a Delaunay triangulation (also known as a Delone triangulation) for a given set P of discrete points in a general position is a triangulation DT(P) such that no point in P is inside the circumcircle o ...
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. In the simplest case, these objects are just finitely many points in the plane (called seeds, sites, or generators). For each seed ...
generation
*
Smallest enclosing rectangle
* 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 compact subsets of a metric space into a me ...
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 dea ...
*
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 sp ...
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 structures and algorithms
I/O capabilities
* Reading and writing of
WKT,
WKB
In mathematical physics, the WKB approximation or WKB method is a method for finding approximate solutions to linear differential equations with spatially varying coefficients. It is typically used for a semiclassical calculation in quantum mecha ...
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
GeoTools is a free software (LGPL) GIS toolkit for developing standards compliant solutions.
It provides an implementation of Open Geospatial Consortium (OGC) specifications as they are developed. GeoTools is a contributor to the GeoAPI projec ...
*
OpenJUMP
Java Unified Mapping Program (JUMP) is a Java based vector and raster GIS and programming framework. Current development continues under the 'OpenJUMP'' name.
Features
As featured on the project's website:
* Platform independent (Windows, Lin ...
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 an Indonesian technique of wax-resist dyeing applied to the whole cloth. This technique originated from the island of Java, Indonesia. Batik is made either by drawing dots and lines of the resist with a spouted tool called a ''ca ...
Geoforge* Hibernate Spatial
*
Whitebox Geospatial Analysis Tools
Whitebox Geospatial Analysis Tools (GAT) is an open-source and cross-platform Geographic information system (GIS) and remote sensing software package that is distributed under the GNU General Public License. It has been developed by the mem ...
ODL Studiojts-discretizerorbis gis/h2gisGeophile
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
The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
as the Net Topology Suite.
A JTS subset has been ported to
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
, 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 Ope ...
, 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 Ope ...
- OGR - raster and vector data munging
*
QGIS
QGIS is a free and open-source cross-platform desktop geographic information system (GIS) application that supports viewing, editing, printing, and analysis of geospatial data.
Functionality
QGIS functions as geographic information system (GIS ...
- 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).
Technica ...
- spatial types and operations for PostgreSQL
* GeoDjango – Django's support for GIS-enabled databases
*
Google Earth – A virtual globe and world imaging program
*
GRASS
Poaceae () or Gramineae () is a large and nearly ubiquitous family of monocotyledonous flowering plants commonly known as grasses. It includes the cereal grasses, bamboos and the grasses of natural grassland and species cultivated in lawns a ...
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 model and a standard used to describe the spatial relations of two regions (two geometries in two-dimensions, R2), in geometry, point-set topology, geospatial topology, ...
, 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 pageGEOS Home page
Geometric algorithms
Application programming interfaces
Free software programmed in Java (programming language)
Geographic data and information software
Geometric topology