JTS Topology Suite v1.17.1 Release Notes

Release Date: 2020-08-28 // over 1 year ago
  • 🔖 Version 1.17.1

    🚀 Release Date: August 27, 2020

    Java Version: 1.8

    Functionality Improvements

    • ➕ Add WKBReader and WKBWriter support for POINT EMPTY (#567)

    🐎 Performance Improvements

    • 👌 Improve performance of PreparedPolygon covers and contains for point inputs (#577)

    🐛 Bug Fixes

    • 🛠 Fix IndexedPointInAreaLocator thread-safety (#572)
    • 🛠 Fix WKTReader to handle MultiPoints containing EMPTY (#575)
    • 🛠 Fix API compile regression by removing deprecation on geometry reverse methods (#582)

    ✅ JTS TestBuilder

    Functionality Improvements

    • ➕ Add per-Layer palette control for Strokes and Fills

    ✅ JTS TestRunner

    Functionality Improvements

    • ✨ Enhance -geomfunc to load multiple function classes
    • 🛠 Fix function registry to replace matching loaded functions (#569)

Previous changes from v1.17.0

  • Java Version: 1.8

    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)
    • 🛠 Fix GML parsing of coordinates and SRS name (#553)

    ✅ 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
    • Add WKT panel Copy as WKB via Ctl-click

    ✅ 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