LocationTech JTS Topology Suite™ 1.17.0 Release Review

Type
Release
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Release

1.17.0

Description

API Changes

  • Change Polygon getExteriorRing and getInteriorRingN accessors to return LinearRing.
    • This is a binary incompatible change to the method signature. Recompilation is necessary. No source code changes are required.

Functionality Improvements

  • Added IndexedFacetDistance.isWithinDistance
  • Added OrdinateFormat to ensure that ordinate text output is accurate and consistent
  • Added Triangle.circumcentreDD
  • Added DD.determinant methods
  • Added Envelope methods getDiameter, copy, disjoint (#483)
  • Added Intersection class, refactored library to use it (#468)
  • Added CascadedPolygonUnion union-by-buffer on error capability (#470)
  • Added HalfEdge support for direction points (#479)
  • Added CoordinateList.toCoordinateArray(isForward) (#482)
  • Addded HPRtree Hilbert Packed R-tree (#494)
  • Added VariableBuffer class for computing varying-distance buffers (#495)
  • Added LineSegment.reflect method (#495)
  • Added MaximumInscribedCircle algorithm (#530)
  • Added LargestEmptyCircle algorithm (#530)

Performance Improvements

  • Improve performance of UniqueCoordinateFilter (#422)
  • Improve performance of Polygonizer (#431)
  • Avoid use of ArrayList in MonotoneChain builders
  • Add DistanceOp line-line envelope short-circuit optimizations (#534)

Bug Fixes

  • Fix PackedCoordinateSequence.Float construction methods (#379, #381)
  • Fix bug in Quadtree.ensureExtent (#416)
  • Fix bugs in LinearLocation endpoint handling (#421)
  • Fix bug in MinimumBoundingCircle maximum diameter algorithm, and provide method for it
  • Improve robustness of CascadedPolygonUnion by adding OverlapUnion
  • Fix bug in HalfEdge.insert method which caused CCW order not to be preserved in some cases
  • Fix generation of Voronoi diagrams for cases with sites in a square (#447)
  • Fix use of clipping envelope in VoronoiDiagramBuilder
  • Fix infinite loop on empty input in IndexedPointInAreaLocator and SortedPackedIntervalRTree (#462)
  • Fix WKT parsing in Turkish locale (#456)
  • Improve accuracy of LineSegment.lineIntersection (#468)
  • Fix Distance3DOp coordinate ordering (#480)
  • Fix Geometry.reverse() to have consistent behaviour and to copy all fields (#513)
  • Fix MinimumBoundingCircle.farthestPoints to work correctly (#522 and #533)
  • Fix DistanceOp handling of geometry collections with empty components (#524)

JTS TestBuilder

Functionality Improvements

  • Add a UI to run external commands
  • Allow creating additional view layers
  • Add map view title, legend and border options
  • Support points in Reveal Topology mode

JTS TestRunner

Functionality Improvements

  • Allow test files/dirs to be specified as free args
  • Only load `.xml` files from directories

JtsOp

  • Added command-line utility to run JTS operations
Conforms To UI/UX Guidelines
Not verified