JTS Topology Suite

JTS Topology Suite (Java 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.[2] It can also be used as a general-purpose library providing algorithms in computational geometry.[3]

JTS Topology Suite
Original author(s)Martin Davis
Stable release
1.16.1 / February 19, 2019 (2019-02-19)[1]
Preview release
1.17.0 / June 30, 2020 (2020-06-30)[1]
Repository
Written inJava
PlatformJava SE
TypeLibrary
LicenseEclipse Public License v.1.0 (starting with 1.15), GNU Lesser General Public License (up to version 1.14)
Websitelocationtech.github.io/jts/ 

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 (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

Spatial structures and algorithms

I/O capabilities

  • Reading and writing of WKT, WKB and GML formats

GEOS Library

GEOS is the C/C++ port of a subset of JTS and selected functions. GEOS is noteworthy as 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, which in turn is a widely supported inner-engine in GIS, GEOS becomes a core geometry implementation in even more applications:

  • GDAL - OGR - raster and vector data munging
  • QGIS - Desktop cross-platform, open source GIS
  • PostGIS - spatial types and operations for PostgreSQL
  • GeoDjango – Django's support for GIS-enabled databases
  • Google Earth – A virtual globe and world imaging program.
  • GRASS GIS Library and Application
  • MapServer - 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 – A satellite image processing library.
  • R – An open source statistical software with extensions for spatial data analysis.
  • SAGA GIS – A cross-platform open source GIS software.

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.[5]

Since late 2016/early 2017 JTS has been adopted by LocationTech.

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.[6]

A JTS subset has been ported to C++, with entry points declared as C interfaces, as the GEOS library.

JTS has been ported to the .NET Framework as the Net Topology Suite.

A Partial List of Projects using JTS

gollark: I don't see why you haven't implemented it in glorious, flawless Macron yet.
gollark: Illegal in 52 states.
gollark: No, it causates correlation.
gollark: Correlation → causation, actually.
gollark: I use a trackpad because I have not bothered to buy a mouse ever.

See also

References

  1. "Releases - locationtech/jts". Retrieved 30 June 2020 via GitHub.
  2. "The 2012 Free and Open Source GIS Software Map – A Guide to facilitate Research, Development and Adoption", S. Steiniger and A.J.S. Hunter
  3. Davis, Martin (September 26, 2007). "Secrets of the JTS Topology Suite". Retrieved 2017-01-26.
  4. A Formal Definition of Binary Topological Relationships by Max Egenhofer
  5. "History of JTS and GEOS - M. Davis". Retrieved 2013-05-27.
  6. "JTS | FAQ". locationtech.github.io. Retrieved 2019-07-18.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.