Martin Davis
2016-01-12 21:41:40 UTC
I'm happy to announce that JTS 1.14 is now available for download from
SourceForge.
https://sourceforge.net/projects/jts-topo-suite/
There are numerous additions and fixes in this version; see below and the
included Version History for full details.
==============================
JTS
-------------------
Functionality Improvements
â¢Added Envelope.compareTo method
â¢Fixed SegmentSetMutualIntersector classes to be thread-safe
â¢Fixed PreparedGeometry classes to be thread-safe
â¢Added LineDissolver class
â¢Added edgegraph package
â¢Added CoordinateSequences.isEqual method
â¢Extended CoordinateSequences.copy and CoordinateSequences.copy to handle
inputs of different dimension
â¢Added CoordinateArrays.envelope() function
â¢Added CoordinateArrays.intersection() function
â¢Added Polygonizer.setCheckValidRings() method for optimizing performance
in some situations
â¢Added KMLWriter to convert Geometry to KML representation
â¢Added Coordinate equals3D, equals2D(Coordinate, tolerance), and equalInZ
methods.
â¢Added VWSimplifier to perform Visvalingam-Whyatt simplification
â¢Enhanced WKBReader to handle Spatialite WKB format
â¢Added DD.setValue() methods
â¢Added getGeometry() methods to LinearComponentExtracter and
LineStringExtracter
â¢Added BufferParameters simplifyFactor setting
â¢Added node counting and ability to not keep intersection points to
InteriorIntersectionFinder
â¢Added Polygonizer functionality to extract only polygons forming a valid
polygonal geometry
â¢Added KdTree.toCoordinates
â¢Added MinimumBoundingCircle.getFarthestPoints method
Performance Improvements
â¢Performance & memory improvement in PreparedPolygonIntersects by
short-circuiting point input case
â¢Allow for memory usage optimization in CascadedPolygonUnion, by avoiding
retaining input collection
â¢Fix Point.isEmpty() to avoid allocating a coordinate
â¢Fix Geometry.equalsExact() to short-circuit when the inputs are identical
objects
â¢Add short-circuit to PointExtracter to improve performance for Points
Bug Fixes
â¢Fixed RobustLineIntersector heuristic for handling invalid intersection
points (computed as outside envelope of input segments due to numeric
precision issues)
â¢Fixed CGAlgorithmsDD.intersection to compute intersection correctly
â¢Fixed Geometry.interiorPoint() to compute a true interior point in certain
cases
â¢Fixed Geometry.equals to handle null argument
â¢Fixed DistanceToPoint to be thread-safe
â¢Fixed Geometry.interiorPoint() and InteriorPointArea to handle zero-area
geometries
â¢Fixed STRtree classes to be thread-safe (by synchronizing the
AbstractSTRtree.build() method)
â¢Fixed STRtree.remove() method to avoid a NPE
â¢Fixed DouglasPeuckerSimplifier and TopologyPreservingSimplifier to handle
empty geometry components in the input
â¢Fixed ConvexHull to handle input of array of identical coordinates
â¢Fixed GeometryTransformer.transformLinearRing() to handle null inputs
â¢Fixed the extractPoint(distance, offset) methods in LocationIndexedLine
and LengthIndexedLine to handle offsets from endpoints correctly.
â¢Fixed GeometryCollectionIterator to correctly handle atomic geometries
â¢Fixed InteriorIntersectionFinder to not short-circuit when finding all
nodes
â¢Fixed SubgraphDepthLocator to work with Java 7+ by avoiding sorting with
an inconsistent ordering
â¢Fixed FontGlyphReader to use correct Java font value of "SansSerif", and
added new constant to match.
â¢Fixed KdTree to correctly implement distance tolerance-based coordinate
matching
â¢Fixed LineString.normalize() to correctly handle CoordinateSequences
â¢Fixed CommonBitsRemover to correctly handle CoordinateSequences
â¢Fixed bug in CoordinateArraySequence.clone()
API Changes
â¢Changed interface of SegmentSetMutualIntersector to support thread-safety
by removing state
â¢Provided InteriorIntersectionFinderAdder to replace the poorly named
IntersectionFinderAdder
â¢Changed some classes in com.vividsolutions.jts.operation.buffer to be
package-private
Testing Improvements
â¢Added GeometryTestCase base class to simplify unit tests
==============================
JTS I/O
-------------------
Functionality Improvements
â¢Added GeoJsonReader and GeoJsonWriter classes
API Changes
â¢In OraWriter the connection is now provided to the write() method, not the
constructors
Bug Fixes
â¢Fixed OraReader to handle reading GeometryCollection with Point as second
element
â¢Many improvements to Oracle API code and performance
â¢Added OraWriter.setOptimizePoint and OraWriter.setOptimizeRectangle
methods
==============================
JTS TestBuilder
-----------------------------
Functionality Improvements
â¢Added ability to read multiple WKBHex geometries from a text file
â¢Added AutoZoom to input
â¢Added Oracle text output
â¢Added more function sets
â¢Removed dependency on Acme GIF encoder library
â¢Improved zooming logic
â¢Added mouse wheel zooming
â¢Improved UI for editing A/B geometries
â¢Added Compute New button to Geometry Functions panel
â¢Added SpatialIndex functions
â¢Added User Data labelling
UI Changes
â¢Moved Options menu items to View menu
â¢Removed Tools menu items (they are available as functions)
Bug Fixes
â¢Fixed to correctly handle changing Swing Look&Feel
SourceForge.
https://sourceforge.net/projects/jts-topo-suite/
There are numerous additions and fixes in this version; see below and the
included Version History for full details.
==============================
JTS
-------------------
Functionality Improvements
â¢Added Envelope.compareTo method
â¢Fixed SegmentSetMutualIntersector classes to be thread-safe
â¢Fixed PreparedGeometry classes to be thread-safe
â¢Added LineDissolver class
â¢Added edgegraph package
â¢Added CoordinateSequences.isEqual method
â¢Extended CoordinateSequences.copy and CoordinateSequences.copy to handle
inputs of different dimension
â¢Added CoordinateArrays.envelope() function
â¢Added CoordinateArrays.intersection() function
â¢Added Polygonizer.setCheckValidRings() method for optimizing performance
in some situations
â¢Added KMLWriter to convert Geometry to KML representation
â¢Added Coordinate equals3D, equals2D(Coordinate, tolerance), and equalInZ
methods.
â¢Added VWSimplifier to perform Visvalingam-Whyatt simplification
â¢Enhanced WKBReader to handle Spatialite WKB format
â¢Added DD.setValue() methods
â¢Added getGeometry() methods to LinearComponentExtracter and
LineStringExtracter
â¢Added BufferParameters simplifyFactor setting
â¢Added node counting and ability to not keep intersection points to
InteriorIntersectionFinder
â¢Added Polygonizer functionality to extract only polygons forming a valid
polygonal geometry
â¢Added KdTree.toCoordinates
â¢Added MinimumBoundingCircle.getFarthestPoints method
Performance Improvements
â¢Performance & memory improvement in PreparedPolygonIntersects by
short-circuiting point input case
â¢Allow for memory usage optimization in CascadedPolygonUnion, by avoiding
retaining input collection
â¢Fix Point.isEmpty() to avoid allocating a coordinate
â¢Fix Geometry.equalsExact() to short-circuit when the inputs are identical
objects
â¢Add short-circuit to PointExtracter to improve performance for Points
Bug Fixes
â¢Fixed RobustLineIntersector heuristic for handling invalid intersection
points (computed as outside envelope of input segments due to numeric
precision issues)
â¢Fixed CGAlgorithmsDD.intersection to compute intersection correctly
â¢Fixed Geometry.interiorPoint() to compute a true interior point in certain
cases
â¢Fixed Geometry.equals to handle null argument
â¢Fixed DistanceToPoint to be thread-safe
â¢Fixed Geometry.interiorPoint() and InteriorPointArea to handle zero-area
geometries
â¢Fixed STRtree classes to be thread-safe (by synchronizing the
AbstractSTRtree.build() method)
â¢Fixed STRtree.remove() method to avoid a NPE
â¢Fixed DouglasPeuckerSimplifier and TopologyPreservingSimplifier to handle
empty geometry components in the input
â¢Fixed ConvexHull to handle input of array of identical coordinates
â¢Fixed GeometryTransformer.transformLinearRing() to handle null inputs
â¢Fixed the extractPoint(distance, offset) methods in LocationIndexedLine
and LengthIndexedLine to handle offsets from endpoints correctly.
â¢Fixed GeometryCollectionIterator to correctly handle atomic geometries
â¢Fixed InteriorIntersectionFinder to not short-circuit when finding all
nodes
â¢Fixed SubgraphDepthLocator to work with Java 7+ by avoiding sorting with
an inconsistent ordering
â¢Fixed FontGlyphReader to use correct Java font value of "SansSerif", and
added new constant to match.
â¢Fixed KdTree to correctly implement distance tolerance-based coordinate
matching
â¢Fixed LineString.normalize() to correctly handle CoordinateSequences
â¢Fixed CommonBitsRemover to correctly handle CoordinateSequences
â¢Fixed bug in CoordinateArraySequence.clone()
API Changes
â¢Changed interface of SegmentSetMutualIntersector to support thread-safety
by removing state
â¢Provided InteriorIntersectionFinderAdder to replace the poorly named
IntersectionFinderAdder
â¢Changed some classes in com.vividsolutions.jts.operation.buffer to be
package-private
Testing Improvements
â¢Added GeometryTestCase base class to simplify unit tests
==============================
JTS I/O
-------------------
Functionality Improvements
â¢Added GeoJsonReader and GeoJsonWriter classes
API Changes
â¢In OraWriter the connection is now provided to the write() method, not the
constructors
Bug Fixes
â¢Fixed OraReader to handle reading GeometryCollection with Point as second
element
â¢Many improvements to Oracle API code and performance
â¢Added OraWriter.setOptimizePoint and OraWriter.setOptimizeRectangle
methods
==============================
JTS TestBuilder
-----------------------------
Functionality Improvements
â¢Added ability to read multiple WKBHex geometries from a text file
â¢Added AutoZoom to input
â¢Added Oracle text output
â¢Added more function sets
â¢Removed dependency on Acme GIF encoder library
â¢Improved zooming logic
â¢Added mouse wheel zooming
â¢Improved UI for editing A/B geometries
â¢Added Compute New button to Geometry Functions panel
â¢Added SpatialIndex functions
â¢Added User Data labelling
UI Changes
â¢Moved Options menu items to View menu
â¢Removed Tools menu items (they are available as functions)
Bug Fixes
â¢Fixed to correctly handle changing Swing Look&Feel