JTS Topology Suite

Last updated
JTS Topology Suite
Original author(s) Martin Davis
Stable release
1.20.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 30 August 2024;2 months ago (30 August 2024)
Repository
Written in Java
Platform Java SE
Type Library
License Eclipse Public License v.1.0 (starting with 1.15), GNU Lesser General Public License (up to version 1.14)
Website locationtech.github.io/jts/   OOjs UI icon edit-ltr-progressive.svg

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]

Contents

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

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.

Projects using JTS

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]

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, which in turn is a widely supported inner-engine in GIS, GEOS becomes a core geometry implementation in even more applications:

See also

Related Research Articles

<span class="mw-page-title-main">PostGIS</span> Geospatial extension for the PostgreSQL Database

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).

A GIS file format is a standard for encoding geographical information into a computer file, as a specialized type of file format for use in geographic information systems (GIS) and other geospatial applications. Since the 1970s, dozens of formats have been created based on various data models for various purposes. They have been created by government mapping agencies, GIS software vendors, standards bodies such as the Open Geospatial Consortium, informal user communities, and even individual developers.

Algorithmic topology, or computational topology, is a subfield of topology with an overlap with areas of computer science, in particular, computational geometry and computational complexity theory.

<span class="mw-page-title-main">Spatial network</span> Network representing spatial objects

A spatial network is a graph in which the vertices or edges are spatial elements associated with geometric objects, i.e., the nodes are located in a space equipped with a certain metric. The simplest mathematical realization of spatial network is a lattice or a random geometric graph, where nodes are distributed uniformly at random over a two-dimensional plane; a pair of nodes are connected if the Euclidean distance is smaller than a given neighborhood radius. Transportation and mobility networks, Internet, mobile phone networks, power grids, social and contact networks and biological neural networks are all examples where the underlying space is relevant and where the graph's topology alone does not contain all the information. Characterizing and understanding the structure, resilience and the evolution of spatial networks is crucial for many different fields ranging from urbanism to epidemiology.

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 project - a vendor-neutral set of Java interfaces derived from OGC specifications - and implements a subset of those.

A GIS software program is a computer program to support the use of a geographic information system, providing the ability to create, store, manage, query, analyze, and visualize geographic data, that is, data representing phenomena for which location is important. The GIS software industry encompasses a broad range of commercial and open-source products that provide some or all of these capabilities within various information technology architectures.

<span class="mw-page-title-main">Sol Katz</span> American software developer

Solomon 'Sol' Katz was an American software developer who pioneered geospatial computer software and left behind a large body of work in the form of computer applications and format specifications while at the U.S. Bureau of Land Management. This early archive provided both source code and applications freely available to the community, including the Windows application PC-MOSS, where MOSS is the earliest known Open Source Geographic Information System. Katz was also a frequent contributor to many geospatial list servers.

<span class="mw-page-title-main">Shapefile</span> Geospatial vector data format

The shapefile format is a geospatial vector data format for geographic information system (GIS) software. It is developed and regulated by Esri as a mostly open specification for data interoperability among Esri and other GIS software products. The shapefile format can spatially describe vector features: points, lines, and polygons, representing, for example, water wells, rivers, and lakes. Each item usually has attributes that describe it, such as name or temperature.

Simple Features is a set of standards that specify a common storage and access model of geographic features made of mostly two-dimensional geometries used by geographic databases and geographic information systems. It is formalized by both the Open Geospatial Consortium (OGC) and the International Organization for Standardization (ISO).

A spatial database is a general-purpose 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.

The Open Source Geospatial Foundation (OSGeo), is a non-profit non-governmental organization whose mission is to support and promote the collaborative development of open geospatial technologies and data. The foundation was formed in February 2006 to provide financial, organizational and legal support to the broader Libre/Free and open-source geospatial community. It also serves as an independent legal entity to which community members can contribute code, funding and other resources.

<span class="mw-page-title-main">GDAL</span> Translator library for raster and vector geospatial data formats

The Geospatial Data Abstraction Library (GDAL) is a computer software library for reading and writing raster and vector geospatial data formats, and is released under the permissive X/MIT style free software license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model to the calling application for all supported formats. It may also be built with a variety of useful command line interface utilities for data translation and processing. Projections and transformations are supported by the PROJ library.

Oracle Spatial and Graph, formerly Oracle Spatial, is a free option component of the Oracle Database. The spatial features in Oracle Spatial and Graph aid users in managing geographic and location-data in a native type within an Oracle database, potentially supporting a wide range of applications — from automated mapping, facilities management, and geographic information systems (AM/FM/GIS), to wireless location services and location-enabled e-business. The graph features in Oracle Spatial and Graph include Oracle Network Data Model (NDM) graphs used in traditional network applications in major transportation, telcos, utilities and energy organizations and RDF semantic graphs used in social networks and social interactions and in linking disparate data sets to address requirements from the research, health sciences, finance, media and intelligence communities.

<span class="mw-page-title-main">Boolean operations on polygons</span>

Boolean operations on polygons are a set of Boolean operations operating on one or more sets of polygons in computer graphics. These sets of operations are widely used in computer graphics, CAD, and in EDA.

In geographic information systems (GIS) and spatial analysis, buffer analysis is the determination of a zone around a geographic feature containing locations that are within a specified distance of that feature, the buffer zone. A buffer is likely the most commonly used tool within the proximity analysis methods.

A geographic data model, geospatial data model, or simply data model in the context of geographic information systems, is a mathematical and digital structure for representing phenomena over the Earth. Generally, such data models represent various aspects of these phenomena by means of geographic data, including spatial locations, attributes, change over time, and identity. For example, the vector data model represents geography as collections of points, lines, and polygons, and the raster data model represent geography as cell matrices that store numeric values. Data models are implemented throughout the GIS ecosystem, including the software tools for data management and spatial analysis, data stored in a variety of GIS file formats, specifications and standards, and specific designs for GIS installations.

<span class="mw-page-title-main">DE-9IM</span> Topological model

The Dimensionally Extended 9-Intersection Model (DE-9IM) is a topological model and a standard used to describe the spatial relations of two regions, in geometry, point-set topology, geospatial topology, and fields related to computer spatial analysis. The spatial relations expressed by the model are invariant to rotation, translation and scaling transformations.

<span class="mw-page-title-main">Geospatial topology</span> Type of spatial relationship

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 example, the fact that two regions overlap or that one contains the other are examples of topological relationships. It is thus the application of the mathematics of topology to GIS, and is distinct from, but complementary to the many aspects of geographic information that are based on quantitative spatial measurements through coordinate geometry. Topology appears in many aspects of geographic information science and GIS practice, including the discovery of inherent relationships through spatial query, vector overlay and map algebra; the enforcement of expected relationships as validation rules stored in geospatial data; and the use of stored topological relationships in applications such as network analysis. Spatial topology is the generalization of geospatial topology for non-geographic domains, e.g., CAD software.

Mathematics is a broad subject that is commonly divided in many areas that may be defined by their objects of study, by the used methods, or by both. For example, analytic number theory is a subarea of number theory devoted to the use of methods of analysis for the study of natural numbers.

GeoSPARQL is a model for representing and querying geospatial linked data for the Semantic Web. It is standardized by the Open Geospatial Consortium as OGC GeoSPARQL. The definition of a small ontology based on well-understood OGC standards is intended to provide a standardized exchange basis for geospatial RDF data which can support both qualitative and quantitative spatial reasoning and querying with the SPARQL database query language.

References

  1. "Release 1.20.0". 30 August 2024. Retrieved 22 September 2024.
  2. "The 2012 Free and Open Source GIS Software Map – A Guide to facilitate Research, Development and Adoption" Archived 2013-05-18 at the Wayback Machine , 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". 10 June 2007. Retrieved 2013-05-27.
  6. "JTS | FAQ". locationtech.github.io. Retrieved 2019-07-18.
  7. "SAGA GIS" . Retrieved 29 September 2020.