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 the source code, design documents, or content of the product. The open-source model is a decentralized so ...
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 mo ...
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 c ...
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"
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 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 ar ...
. 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 1 ...
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 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 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, thei ...
,
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,
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 computation (including different cap and join types) *
Convex hull In geometry, the convex hull or 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 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 met ...


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 s ...
structures including quadtree and STR-tree *
Planar graph In 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. In other words, it can be drawn in such a way that no edges cro ...
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 mec ...
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, ...
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
ODL Studio

jts-discretizer

orbis gis/h2gis

Geophile


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 ...
, 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 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 Google Earth is a computer program that renders a 3D computer graphics, 3D representation of Earth based primarily on satellite imagery. The program maps the Earth by superimposition, superimposing satellite images, aerial photography, and geog ...
– 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, 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