Download

JTS 1.8.0 JTS Version 1.8.0
Release Date: Dec 19, 2006  

Functionality Improvements

  • Improved robustness for overlay operations, via using geometry snapping
  • Added Angle class
  • Added methods to Triangle class
  • Added LineSegment.midPoint method
  • Added ability to specify output of Z values to WKTWriter
  • Added setFormatted, setTab, setMaxCoordinatesPerLine methods to WKTWriter
  • Added BoundaryNodeRule classes, and ability to specify a Boundary Node Rule in RelateOp, IsSimpleOp, BoundaryOp
  • Added ability to get the failure location to IsSimpleOp
  • Added BoundaryOp with improved algorithm for lineal geometries. Changed lineal Geometry classes to use it.
  • Enhanced Geometry overlay methods to accept empty GeometryCollections.
  • Enhanced Error Handling for WKTReader
  • Added CoordinateSequenceFilter
  • Added AffineTransformation and AffineTransformationBuilder

API Changes

  • Changed API for IsSimpleOp (required to support returning failure location)

Bug Fixes

  • Fixed bug in GeometryFactory.buildGeometry causing failure if input contained all GeometryCollections of the same subclass
  • Changed AssertFailure to TopologyException in PolygonBuilder
  • Improved correctness of RobustLineIntersector in certain cases where segment endpoints intersect

JTS 1.7.2 JTS Version 1.7.2
Release Date: June 22, 2006  

Functionality Improvements

  • Added support for EWKB (SRIDs only) to WKBReader
  • isValid now checks for invalid coordinates (e.g. ones with Nan or infinite numbers)

Bug Fixes

  • Fixed bug in CoordinateArrays.ptNotInList. Changed polygonize.EdgeRing to used corrected code.
  • Fixed bug causing duplicate points in ScaledNoder
  • Fixed bug causing Null Pointer for empty geometries in OraWriter
  • Changed AssertFailure to TopologyException in EdgeNode

JTS 1.7.1 JTS Version 1.7.1
Release Date: March 20, 2006  

See Version History for full list of changes

JTS 1.7 JTS Version 1.7
Release Date: December 7, 2005  

See Version History for full list of changes

JTS 1.6 JTS Version 1.6
Release Date: February 3, 2005  

See Version History for full list of changes

JTS 1.5 JTS Version 1.5
Release Date: September 22, 2004  

Functionality Improvements

  • CGAlgorithms#isCCW now handles coordinate lists with repeated points. Also throws an IllegalArgumentException if the input ring does not have 3 distinct points
  • isValid now checks for invalid coordinates (e.g. ones with Nan or infinite numbers)
  • added copyDeep() method to CoordinateArrays
  • added geometry simplification operations DouglasPeuckerSimplifier and TopologyPreservingSimplifier
  • added methods to Quadtree and STRtree to remove items and query using the Visitor pattern

Performance Improvements

  • Added short-circuit tests in geometry named predicates based on envelope tests

Bug Fixes

  • Various bug fixes - see Version History

Documentation

  • More examples provided in com.vividsolutions.jtsexamples package

See Version History for full list of changes

 

JTS 1.4 JTS Version 1.4
Release Date: November 4, 2003  

Functionality Improvements

  • Added "LINEARRING" tag to WKT syntax
  • Added GeometryEditor class to allow easy copy/modify of Geometrys
  • Added GeometricShapeFactory class to easily create standard geometric shapes
  • Geometries can now carry arbitrary user-defined data objects (via Geometry#get/setUserData(Object) method)
  • Added CoordinateSequence and CoordinateSequenceFactory interfaces, and default implementations (BasicCoordinateSequence, BasicCoordinateSequenceFactory)
  • Added DistanceOp#getClosestPoints method, which returns the closest points between two Geometries
  • Added com.vividsolutions.jts.noding package containing classes to perform fast indexed noding of linestrings
  • Added com.vividsolutions.jts.operation.polygonize package containing classes to perform polygonization
  • Added com.vividsolutions.jts.operation.linemerge package containing classes to perform line merging
  • BufferOp now allows end cap styles to be specified. Three types are supported: round, butt and square.
Performance Improvements
  • Buffering is now faster and much more robust
  • Overlap operations are now more robust
Bug Fixes
  • Numerous bug fixes - see Version History
Documentation
  • More examples provided in com.vividsolutions.jtsexamples package
  • Added JTS Developer's Guide

See Version History for full list of changes

 

JTS 1.3 JTS Version 1.3
Release Date: April 4, 2003

Semantics Changes

  • all Geometry methods are now reentrant (thread-safe)
  • Fixed-precision coordinates are now stored in a rounded but non-scaled form. This makes them compatible with non-precise (Floating) coordinates, and simplifies working with precise coordinates directly. 
  • Mixed precision models are now supported in Geometry methods; method results are in the more precise of the input precision models.
  • Offsets are no longer supported in the Fixed precision model. This is necessary to allow storing fixed precision coordinates in a non-scaled form. This does not reduce the total precision available, since coordinates are stored in a floating-point format.
  • SRID and Precision Model are no longer checked for equality during Geometry operations. This removes a limitation which provided little semantic benefit.

Functionality Improvements

  • added Geometry.isWithinDistance(Geometry g, double distance) method, to provide optimized proximity queries
  • added Geometry.buffer(double distance, int quadrantSegments) method, allowing control over accuracy of buffer approximation
  • added Geometry.getCentroid() method
  • added Geometry.getInteriorPoint() method, which uses heuristic methods to return a point in the interior of a Geometry

Performance Improvements

  • Eliminated unnecessary computation of self-intersections in rings during relate and spatial functions. This provides a large increase in speed when working with large rings and polygons. (Note that IsValid still checks for these self-intersections, which are illegal in LinearRings)
  • Add short-circuit code to RobustLineIntersector to detect non-intersections more efficiently

API Changes

  • Added default constructor to WKTReader. It uses the default GeometryFactory
    Add two static intersects() methods to Envelope, to allow computing intersections with envelopes defined by points only.
  • The Geometry class is now marked as Serializable

See Version History for full list of changes

 

JTS 1.2 JTS Version 1.2
Release Date: October 7, 2002
  • JTS now allows Geometrys to have repeated points.
  • TopologyExceptions may now be thrown by spatial overlay methods. 
  • RobustLineIntersector now uses "normalized" coordinates to maximize the accuracy of intersection computation.
  • Spatial indexes improved in both performance and robustness
  • Added EnhancePrecisionOp, which uses precisioning enhancing techniques to reduce the number of failure cases due to robustness problems.
  • Fixed isValid for GeometryCollections containing Polygons, which were sometimes erroneously returning a validity failure for correct Geometrys.
  • IsValid now checks for too few points in a geometry component (e.g. due to repeated points in a ring)
  • Added Geometry.getArea() and Geometry.getLength() methods
  • Added TopologyValidationError.getErrorType() method

See Version History for full list of changes

 

JTS 1.1 JTS Version 1.1.
Release Date: March 28, 2002
  • Added Geometry.isSimple() and Geometry.isValid() methods
  • Improved design of topological data structures
  • Added Geometry.setSRID() method
  • Improved functionality of the Envelope class
  • Added ability to write to an arbitrary java.io.Writer object to WKTWriter
  • Added Validate and Mark Location functionality to TestBuilder
JTS 1.0 JTS Version 1.0.
Release Date: February 1, 2002
  • This release is functionally complete (apart from isSimple and isValid).
  • The spatial predicates are robust under both Fixed and Floating precision models.
  • The spatial overlay and buffer functions are unfortunately not fully robust. The overlay functions should perform similarly to most other spatial APIs, however.
  • The buffer function is robust and precise for many inputs, but does have known failure cases.