|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
PointInRing | An interface for classes which test whether a Coordinate lies inside
a ring. |
Class Summary | |
CentroidArea | Computes the centroid of an area geometry. |
CentroidLine | Computes the centroid of a linear geometry. |
CentroidPoint | Computes the centroid of a point geometry. |
CGAlgorithms | Specifies and implements various fundamental Computational Geometric algorithms. |
ConvexHull | Computes the convex hull of a Geometry . |
HCoordinate | Represents a homogeneous coordinate for 2-D coordinates. |
InteriorPointArea | Computes a point in the interior of an area geometry. |
InteriorPointLine | Computes a point in the interior of an linear geometry. |
InteriorPointPoint | Computes a point in the interior of an point geometry. |
LineIntersector | A LineIntersector is an algorithm that can both test whether two line segments intersect and compute the intersection point if they do. |
MCPointInRing | Implements PointInRing
using MonotoneChain s and a BinTree index to
increase performance. |
MinimumDiameter | Computes the minimum diameter of a Geometry . |
NonRobustCGAlgorithms | Non-robust versions of various fundamental Computational Geometric algorithms. |
NonRobustLineIntersector | A non-robust version of . |
PointLocator | Computes the topological relationship (Location )
of a single point to a Geometry. |
RobustCGAlgorithms | Robust versions of various fundamental Computational Geometric algorithms. |
RobustDeterminant | Implements an algorithm to compute the sign of a 2x2 determinant for double precision values robustly. |
RobustLineIntersector | A robust version of . |
SimplePointInAreaLocator | Computes whether a point
lies in the interior of an area Geometry . |
SimplePointInRing | Tests whether a Coordinate lies inside
a ring, using a linear-time algorithm. |
SIRtreePointInRing | Implements PointInRing
using a SIRtree index to
increase performance. |
Exception Summary | |
NotRepresentableException | Indicates that a HCoordinate has been computed which is
not representable on the Cartesian plane. |
Contains classes and interfaces implementing fundamental computational geometry algorithms.
The Java Topology Suite (JTS) is a Java API that implements a core set of spatial data operations using an explicit precision model and robust geometric algorithms. JTS is intended to be used in the development of applications that support the validation, cleaning, integration and querying of spatial datasets.
JTS attempts to implement the OpenGIS Simple Features Specification (SFS) as accurately as possible. In some cases the SFS is unclear or omits a specification; in this case JTS attempts to choose a reasonable and consistent alternative. Differences from and elaborations of the SFS are documented in this specification.
There are many approaches to dealing with the problem of robustness in geometrical computation. Not surprisingly, most robust algorithms are substantially more complex and less performant than the non-robust versions. Fortunately, JTS is sensitive to robustness problems in only a few key functions (such as line intersection and the point-in-polygon test). There are efficient robust algorithms available for these functions, and these algorithms are implemented in JTS.
The obvious naive algorithm for intersection detection (comparing every segment with every other) has unacceptably slow performance. There is a large literature of faster algorithms for intersection detection. Unfortunately, many of them involve substantial code complexity. JTS tries to balance code simplicity with performance gains. It uses some simple techniques to produce substantial performance gains for common types of input data.
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |