JTS Topology Suite
Encyclopedia
The JTS Topology Suite is an open source Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 software library that provides an object model for Euclidean
Euclidean geometry
Euclidean geometry is a mathematical system attributed to the Alexandrian Greek mathematician Euclid, which he described in his textbook on geometry: the Elements. Euclid's method consists in assuming a small set of intuitively appealing axioms, and deducing many other propositions from these...

 planar linear geometry
Geometry
Geometry arose as the field of knowledge dealing with spatial relationships. Geometry was one of the two fields of pre-modern mathematics, the other being the study of numbers ....

 together with a set of fundamental geometric functions. JTS is primarily intended to be used as a core component of vector-based geomatics
Geomatics
Geomatics is the discipline of gathering, storing, processing, and delivering geographic information, or spatially referenced information.-Overview and etymology:...

 software such as geographical information systems. It can also be used as a general-purpose library providing algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...

s in computational geometry
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 are also considered to be part of computational...

.

JTS implements the geometry model and API defined in the OpenGIS Consortium Simple Features Specification for SQL
Simple Features
Simple feature access , is both an OpenGIS and ISO Standard that specifies a common storage model of geographical data using well-known text . The geometries are also associated with spatial reference systems...

.

JTS provides a foundation for building further spatial applications, such as viewers, spatial query processors, and tools for performing data validation, cleaning and integration.

The software is published under the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

 (LGPL).

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
    DE-9IM
    In geometry, a dimensionally extended nine-intersection model is a topological model used to describe the spatial relation of two geometries in two-dimensions...

     model
  • Overlay functions (including intersection
    Intersection (set theory)
    In mathematics, the intersection of two sets A and B is the set that contains all elements of A that also belong to B , but no other elements....

    , difference
    Complement (set theory)
    In set theory, a complement of a set A refers to things not in , A. The relative complement of A with respect to a set B, is the set of elements in B but not in A...

    , union
    Union (set theory)
    In set theory, the union of a collection of sets is the set of all distinct elements in the collection. The union of a collection of sets S_1, S_2, S_3, \dots , S_n\,\! gives a set S_1 \cup S_2 \cup S_3 \cup \dots \cup S_n.- Definition :...

    , symmetric difference
    Symmetric difference
    In mathematics, the symmetric difference of two sets is the set of elements which are in either of the sets and not in their intersection. The symmetric difference of the sets A and B is commonly denoted by A\,\Delta\,B\,orA \ominus B....

    )
  • Buffer
    Buffer (GIS)
    A buffer in GIS is a zone around a map feature measured in units of distance or time. A buffer is useful for proximity analysis.A buffer is an area defined by the bounding region determined by a set of points at a specified maximum distance from all nodes along segments of an object....

     computation (including different cap and join types)
  • Convex hull
    Convex hull
    In mathematics, the convex hull or convex envelope for a set of points X in a real vector space V is the minimal convex set containing X....

  • Geometric simplification
    Cartographic generalization
    Cartographic generalization is the method whereby information is selected and represented on a map in a way that adapts to the scale of the display medium of the map, not necessarily preserving all intricate geographical or other cartographic details...

     including the Douglas–Peucker algorithm
  • Geometric densification
  • Linear referencing
    Linear Reference System
    Linear referencing , is a reference system in which the locations of features are identified by a relative measure along a linear element, for example a milestone along a road. Each feature is located by either a point or a line...

  • Precision reduction
  • Delaunay triangulation
    Delaunay triangulation
    In mathematics and computational geometry, a Delaunay triangulation for a set P of points in a plane is a triangulation DT such that no point in P is inside the circumcircle of any triangle in DT. Delaunay triangulations maximize the minimum angle of all the angles of the triangles in the...

     and constrained Delaunay triangulation
  • Voronoi diagram
    Voronoi diagram
    In mathematics, a Voronoi diagram is a special kind of decomposition of a given space, e.g., a metric space, determined by distances to a specified family of objects in the space...

     generation
  • Smallest enclosing rectangle
  • Discrete Hausdorff distance
    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 metric space in its own right...



Spatial structures and algorithms
  • Robust line segment intersection
  • Efficient line arrangement intersection
    Line segment intersection
    In computational geometry, the line segment intersection problem supplies a list of line segments in the plane and asks us to determine whether any two of them intersect, or cross....

     or noding
  • Efficient point in polygon
    Point in polygon
    In computational geometry, the point-in-polygon problem asks whether a given point in the plane lies inside, outside, or on the boundary of a polygon...

  • Spatial index structures including quadtree
    Quadtree
    A quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are most often used to partition a two dimensional space by recursively subdividing it into four quadrants or regions. The regions may be square or rectangular, or may have arbitrary shapes. This...

     and STR-tree
    R-tree
    R-trees are tree data structures used for spatial access methods, i.e., for indexing multi-dimensional information such as geographical coordinates, rectangles or polygons. The R-tree was proposed by Antonin Guttman in 1984 and has found significant use in both research and real-world applications...

  • Planar graph
    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...

     structures and algorithms


I/O capabilities
  • Reading and writing of WKT
    Well-known text
    Well-known text is a text markup language for representing vector geometry objects on a map, spatial reference systems of spatial objects and transformations between spatial reference systems. A binary equivalent, known as well-known binary is used to transfer and store the same information on...

    , WKB
    Well-known text
    Well-known text is a text markup language for representing vector geometry objects on a map, spatial reference systems of spatial objects and transformations between spatial reference systems. A binary equivalent, known as well-known binary is used to transfer and store the same information on...

     and GML
    Geography Markup Language
    The Geography Markup Language is the XML grammar defined by the Open Geospatial Consortium to express geographical features. GML serves as a modeling language for geographic systems as well as an open interchange format for geographic transactions on the Internet...

     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.

See also History of JTS and GEOS

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 C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 as the GEOS library.

JTS has been ported to the .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

 as the Net Topology Suite.

Projects using JTS

  • Batik
    Batik (software)
    Batik is a pure-Java library that can be used to render, generate, and manipulate SVG graphics. IBM supported the project and then donated the code to the Apache Software Foundation, where other companies and teams decided to join efforts.Batik provides a set of core modules that provide...

  • GeoServer
    GeoServer
    In computing, GeoServer - an open-source server written in Java - allows users to share and edit geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards...

  • GeoTools
    GeoTools
    GeoTools is a free software GIS toolkit for developing standards compliant solutions.It provides an implementation of Open Geospatial Consortium specifications as they are developed...

  • gvSIG
    GvSIG
    gvSIG is a geographic information system , that 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. gvSIG is known for having a user-friendly interface,...

  • OpenJUMP
  • uDig
    UDig
    uDig is a GIS software program produced by a community led by Canadian-based consulting company Refractions Research. It is based on the Eclipse platform and features full layered Open Source GIS...

  • StraightEdge
  • OpenTripPlanner

See also

  • Point-in-polygon (PIP) problem
    Point in polygon
    In computational geometry, the point-in-polygon problem asks whether a given point in the plane lies inside, outside, or on the boundary of a polygon...

  • Well-known text (WKT)
    Well-known text
    Well-known text is a text markup language for representing vector geometry objects on a map, spatial reference systems of spatial objects and transformations between spatial reference systems. A binary equivalent, known as well-known binary is used to transfer and store the same information on...

  • GEOS
  • Simple Features Specification for SQL
    Simple Features
    Simple feature access , is both an OpenGIS and ISO Standard that specifies a common storage model of geographical data using well-known text . The geometries are also associated with spatial reference systems...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK