---------- Forwarded message ----------
From:
Martin Davis <[log in to unmask]>Date: Thu, Dec 13, 2012 at 12:10 PM
Subject: [Jts-topo-suite-user] JTS 1.13 released
To: "
[log in to unmask]" <
[log in to unmask]>
I'm happy to announce that JTS 1.13 has been released and is now
available for download from SourceForge at
http://sourceforge.net/projects/jts-topo-suite/
There are many new features, improvements and bug fixes in this
release. The full list is:
Functionality Improvements
- Changed GeometryFactory.createGeometry() to make a
deep copy of the argument Geometry,
using the CoordinateSequenceFactory of the factory
- Added ability to specify a dimension in CoordinateArraySequence
- Changed Geometry.getEnvelopeInternal() to return a
copy of the cached envelope, to prevent modification
- Added GeometryEditor.CoordinateSequenceOperation to
allow easy editing of constituent CoordinateSequences
- Added GeometryFactory.createPolygon convenience
methods which do not require holes to be specified
- Geometry overlay methods now return empty results as
atomic types of appropriate dimension
- Added RectangleLineIntersector to provide efficient
rectangle-line intersection testing
- Added getOrdinate and setOrdinate to Coordinate
- Quadtree is Serializable
- STRtree is Serializable
- Added max, average and wrap
functions to MathUtil
- Improved WKTReader parse error reporting to report
input line of error
- Improved
WKBReader
to repair
structurally-invalid input
- Made TopologyPreservingSimplifier thread-safe
- Added AbstractSTRtree.isEmpty() method
- Added QuadTree.isEmpty() method
- Added KdTree.isEmpty() method
- Added decimation and duplicate point removal to ShapeWriter.
- ScaledNoder now preserves Z values of input
- Added instance methods for all Triangle
static methods
- Added CGAlgorithmsDD containing high-precision
versions of some basic CG algorithms
- Added IntersectionMatrix.isTrue() method for testing
IM pattern matches
- Added
getRawCoordinates
methods to PackedCoordinateSequence
concrete classes
- Modified
Geometry.isSimple()
to explicity check
for simplicity for all types,
and support GeometryCollections
- Improved
MCIndexSnapRounder
to add nodes only
where they are necessary
- Added
CoordinateArrays.removeNull()
method
- Enhanced
GeometryEditor
to handle null
geometries returned from operation
- Added
WKBHExFileReader
- Added
Distance3D
operation
Performance Improvements
- Simplified & improved performance of RectangleIntersects
by using new RectangleLineIntersector
- In RandomPointsInGridBuilder eliminated redundant ArrayList
usage
- In PreparedPolygonIntersects and PreparedLineStringIntersects
added check
to avoid creating segment index if all test inputs are points
- In AbstractSTRtree switched to using indexed list
access for better performance than using iterators
- In AbstractSTRtree freed inserted item array after
index is built
- Improved performance of Polygonizer for cases with
many potential holes
- Improved performance for some DD methods by making
them final
- Added fast filter for CGAlgorithmsDD.orientationIndex,
and switched to self-operations for DD determinant
- Changed
STRtree.createNode()
to use a static
class for nodes
- Changed
QuadTree Node
to use scalar x and y
variables rather than a Coordinate
to reduce
memory allocation
- Fixed
PreparedGeometry
concrete classes to be
thread-safe.
- Fixed
SortedPackedIntervalRTree
so that it is
thread-safe.
Robustness Improvements
- Switched to using DD extended-precision arithmetic to compute
orientation predicate
CGAlgorithms.distanceLineLine()
improved to be
more robust and performant
- Fixed robustness issue causing Empty Stack failure
in ConvexHull for some nearly collinear inputs
- CGAlgorithms.signedArea() uses a more accurate
algorithm
Bug Fixes
- Fixed Geometry.equalsExact() to avoid NPE when
comparing empty and non-empty Points
- Fixed CascadedPolygonUnion to discard non-polygonal
components created during unioning,
to avoid failures and provide more desirable behaviour
- Fixed CentralEndpointIntersector to initialize
result correctly
- Fixed DelaunayTriangulationBuilder.extractUniqueCoordinates(Geometry)
to avoid mutating the vertex order of the input Geometry
- Fixed ConformingDelaunayTriangulationBuilder to
allow
non-disjoint site and constraint vertex sets
- Fixed RandomPointsInGridBuilder point generation to
use circle constraint correctly
- Fixed Linear Referencing API to handle MultiLineStrings
consistently,
by always using the lowest possible index value, and by trimming
zero-length components from results
- Fixed bug in LocationIndexedLine and LengthIndexLine
which was
causing an assertion failure when the indexOfAfter() method was
called with a constraint location
which is at the end of the line
- Fixed bug in STRtree.query(Envelope, ItemVisitor)
causing an NPE when tree is empty
- Fixed issue with creating zero-length edges during buffer
topology building under fixed precision, by:
adding filter to remove zero-length edges;
using a better estimate of scale factor for reducing to fixed
precision after initial failure.
- Fixed TopologyPreservingSimplifier to return a valid
result
for closed LineStrings with large distance tolerances
- Fixed TopologyPreservingSimplifier to return an
empty result for an empty input
- Fixed DouglasPeuckerSimplifier to return an empty
result for an empty input
- Fixed MinimumBoundingCircle to correctly compute
circle for obtuse triangles.
- Fixd GeometryPrecisionReducer to use input
GeometryFactory when polygon topology is fixed
- Fixed GeometryNoder bug that was failing to snap to
end vertices of lines
- Fixed Geometry.getCentroid() and Geometry.getInteriorPoint()
to return POINT EMPTY for empty inputs
- Fixed DelaunayTriangulationBuilder to correctly
extract unique points
- Fixed KdTree to correctly handle inserting duplicate
points into an empty tree
- Fixed LineSegment.projectionFactor() to handle
zero-length lines (by returning Double.POSITIVE_INFINITY)
- Fixed LocationIndexedLine to handle locations on
zero-length lines
- Fixed
LengthIndexedLine
and LocationIndexedLine
to handle indexOfAfter()
correctly
- Fixed
WKBReader
to handle successive geometrys
with different endianness
- Fixed
GeometricShapeFactory
to correctly handle
setting the centre point
- Fixed
GeometryFactory.createMultiPoint(CoordinateSequence)
to handle sequences of dimension > 3
API Changes
- Changed visibility of TaggedLineStringSimplifier
back to public due to user demand
Testing
- Added Performance Testing framework (PerformanceTestRunner
and PerformanceTestCase)
- Added named predicate tests to all Relate test cases
Contributors
- Peter Hopfgartner - improved area computation
- Michael Michaud - snap-rounding improvements
JTS TestBuilder
Functionality Improvements
- Added segment index visualization styling
- Improved Geometry Inspector
- Added stream digitizing for Polygon and LineString tools
- Added output of Test Case XML with WKB
- Added Extract Component tool
- Added Delete Vertices Or Components tool
- Added Geometry Edit Panel pop-up menu, with operations
- Added Halton sequence functions
- Added sorting functions
- Added function for selection of first N components
- Added CGAlgorithms functions
- Added ability to paste and load multiple WKBHex geometries
Performance Improvements
- Using decimation substantially improves rendering time for
large geometries.
Bug Fixes
- Fixed bug in saving XML test files
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d_______________________________________________
Jts-topo-suite-user mailing list
[log in to unmask]
https://lists.sourceforge.net/lists/listinfo/jts-topo-suite-user