Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Polygonal Coverage validation, gap finding, union #900

Merged
merged 43 commits into from
Jul 28, 2022

Conversation

dr-jts
Copy link
Contributor

@dr-jts dr-jts commented Jul 28, 2022

Adds the package org.locationtech.jts.coverage containing classes for operating on Polygonal Coverages:

  • CoverageValidator determines if a set of polygons forms a valid coverage and identifies locations of invalidity (and optionally narrow gaps)
  • CoveragePolygonValidator determines if a single polygons forms a valid coverage with adjacent polygons, and identifies locations of invalidity (and optionally narrow gaps)
  • CoverageGapFinder detects narrow gaps which form holes in a polygonal coverage
  • CoverageUnion performs an efficient union of a set of polygons which form a coverage

An invalid polygonal coverage with overlaps and gaps
image

dr-jts added 30 commits July 1, 2022 10:19
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
dr-jts added 13 commits July 18, 2022 13:58
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
@dr-jts dr-jts self-assigned this Jul 28, 2022
@dr-jts dr-jts merged commit 9121d2a into locationtech:master Jul 28, 2022
@dr-jts dr-jts deleted the add-coverage-validator branch July 28, 2022 23:19
pramsey added a commit to libgeos/geos that referenced this pull request Aug 5, 2022
Adds the package geos::coverage containing classes for operating on Polygonal Coverages.
CoverageValidator determines if a set of polygons forms a valid coverage and identifies locations of invalidity (and optionally narrow gaps)
CoveragePolygonValidator determines if a single polygons forms a valid coverage with adjacent polygons, and identifies locations of invalidity (and optionally narrow gaps)
CoverageGapFinder detects narrow gaps which form holes in a polygonal coverage
CoverageUnion performs an efficient union of a set of polygons which form a coverage
@micycle1
Copy link

micycle1 commented Oct 10, 2022

Is a coverage FixGaps feature (ala CoverageCleaner) in the works?

Also, it seems the JTS 1.20.0-SNAPSHOT Maven artifact does not include this and later commits.

@dr-jts
Copy link
Contributor Author

dr-jts commented Oct 11, 2022

Is a coverage FixGaps feature (ala CoverageCleaner) in the works?

Yes, hopefully some kind of coverage cleaning algorithm will be developed soon.

@dr-jts
Copy link
Contributor Author

dr-jts commented Oct 11, 2022

Also, it seems the JTS 1.20.0-SNAPSHOT Maven artifact does not include this and later commits.

Do you mean when you build locally?

@micycle1
Copy link

Also, it seems the JTS 1.20.0-SNAPSHOT Maven artifact does not include this and later commits.

Do you mean when you build locally?

The artifact that is pulled down from https://repo.eclipse.org/content/repositories/jts-snapshots.

@dr-jts
Copy link
Contributor Author

dr-jts commented Oct 11, 2022

Also, it seems the JTS 1.20.0-SNAPSHOT Maven artifact does not include this and later commits.

Do you mean when you build locally?

The artifact that is pulled down from https://repo.eclipse.org/content/repositories/jts-snapshots.

When I pull down the latest SNAPSHOT archive I see the following files, which looks correct?

   creating: org/locationtech/jts/coverage/
  inflating: org/locationtech/jts/coverage/CoverageBoundarySegmentFinder.class  
  inflating: org/locationtech/jts/coverage/CoverageEdge.class  
  inflating: org/locationtech/jts/coverage/CoverageGapFinder.class  
  inflating: org/locationtech/jts/coverage/CoveragePolygonValidator$CoverageRingSegment.class  
  inflating: org/locationtech/jts/coverage/CoveragePolygonValidator.class  
  inflating: org/locationtech/jts/coverage/CoverageRing.class  
  inflating: org/locationtech/jts/coverage/CoverageRingEdges.class  
  inflating: org/locationtech/jts/coverage/CoverageSimplifier.class  
  inflating: org/locationtech/jts/coverage/CoverageUnion.class  
  inflating: org/locationtech/jts/coverage/CoverageValidator.class  
  inflating: org/locationtech/jts/coverage/InvalidSegmentDetector.class  
  inflating: org/locationtech/jts/coverage/TPVWSimplifier$1.class  
  inflating: org/locationtech/jts/coverage/TPVWSimplifier$Edge.class  
  inflating: org/locationtech/jts/coverage/TPVWSimplifier$EdgeIndex.class  
  inflating: org/locationtech/jts/coverage/TPVWSimplifier.class  
  inflating: org/locationtech/jts/coverage/VertexCounter.class  

@micycle1
Copy link

When I pull down the latest SNAPSHOT archive I see the following files, which looks correct?

Actually, my bad. I was looking for the features in the wrong project whose .pom was still referencing 1.19.0..

clrpackages pushed a commit to clearlinux-pkgs/geos that referenced this pull request Jul 10, 2024
Aaron Barany (1):
      Fix CMake on Windows with Visual Studio (#945)

Andrew Hershberger (1):
      Clarify thread safety requirements for C API (#907)

Bas Couwenberg (1):
      Fix spelling errors. (#920)

Ben Wolsieffer (1):
      geos-config: remove reference to geos-3 library (#644)

Brendan Ward (1):
      Update docstring of GEOSSnap / GeometrySnapper (#815)

Casper van der Wel (1):
      Construction of XYZ points with NaN coordinates (#881)

Daniel Baston (180):
      Fix docs, add tests for GEOSEnvelope edge cases (#656)
      WKTReader: Parse and handle Z/M flags in geometry type
      Clear some clang-tidy issues in WKTReaderTest
      Add some cases to WKTReaderTest
      WKTReader: Allow implied M dimension
      Remove unused arg in WKTReader::getPreciseCoordinate
      Add test cases for Trac #1134 (#670)
      Add test cases for Trac #590 (#672)
      WKTReader: Enforce consistent coordinate dimension
      Fix invalid WKT in unit tests
      WKTReader: Raise error if extra text present after end of geometry
      Fix more invalid WKT in unit tests
      Resolve C++20 compile error
      NEWS entries for WKTReader fixes
      Fix crash in GEOSIntersects with empty point inputs (#673)
      Inline Geometry::geometryChangedAction
      Add Point::setXY
      CAPI: Add XY variants of several GEOSPrepared functions
      Inline Point::getCoordinate
      Inline Envelope::covers
      Make HilbertEncoder::sort generic
      Pre-sort inputs to CoverageUnion
      GeometryFactory: Add createMultiPoint(std::vector<Coordinate>&&)
      Fix RelateOp for empty geometry and closed linear geometry
      LineMerger: Recursively collect all components from GeometryCollections (#683)
      Remove heap alloc in GEOSGeom_setPrecision
      GeometryPrecisionReducer: Avoid returning 3D Polygon on 2D input
      CI: Update MacOS to version 11 (#689)
      CMake: Add -Wsign-conversion (#686)
      Add CoordinateSequenceIterator (#685)
      Remove GEOSPreparedContainsProperlyXY
      Delegate PreparedGeometry::isWithinDistance to PreparedPolygon::distance
      Implement IndexedFacetDistance::isWithinDistance
      Add clustering functions (#688)
      Avoid copying test geometry in PreparedPolygonIntersects
      SimplePointInAreaLocator: avoid dynamic_cast and rearrange some envelope checks
      Update NEWS entries
      geosop: add clusterWithin
      PreparedPolygonDistance: Remove unnecessary segment intersection testing
      Remove RayCrossingCounterDD (#694)
      Add CoordinateXY type (#701)
      Use CoordinateXY type for TopologyValidationError (#711)
      Remove set::find() before set::insert()
      CI: Migrate MacOS and cppcheck to GitHub, remove Azure pipelines (#712)
      Convert LocationIndex... to 2D
      Convert Centroid to 2D
      Convert RepeatedPointTester to 2D
      Convert IsValidOp to 2D
      Convert DistanceToPoint to 2D
      Convert Assert to 2D
      Convert GeometricShapeFactory to 2D
      Fix double-free when Node::add throws (#730)
      Catch and report GeosOp exceptions
      Improve short-circuits in SubgraphDepthLocater (#727)
      Add GEOSLineSubstring (#708)
      Move readers from geosop into library (#735)
      Remove AppVeyor testing (#737)
      Pull CoordinateSequence into SegmentString base class (#731)
      Add queryPairs method to TemplateSTRtree
      Use STRtree queryPairs for MCIndexNoder
      Multi-dimensional CoordinateSequence (#721)
      Remove raw pointer Geometry ctrs / GeometryFactory  methods (#745)
      geosop: Fix relateBNR declaration
      Fix null pointer deref when constructing empty point (#749)
      CoordinateSequence: Allow XYZM contsruction by numeric dimension (#753)
      Fix DiscreteFrechetDistance crash on empty inputs (#752)
      OverlayGraph: avoid minor copies, heap allocs
      OverlayEdgeRing: presize hole vector
      PolygonBuilder: presize vector
      LinearRing: Fix error message for invalid size
      RepeatedPointRemover: Avoid reading invalidated reference (#762)
      Add tests for discrete Frechet distance with tiny dens. frac (#767)
      Fix GEOSCoodSeq_copyFromBuffer for XYM (#772)
      PreparedLineStringIntersects: Fix incorrect result for mixed-dim GC with points (#774)
      LinearComponentExtracter: Avoid dynamic_cast
      LinearComponentExtracter: Remove unused filter_rw method
      Add test for Trac #769
      C API: Add GEOSHasM (#776)
      Delegate Geometry::intersects to PreparedGeometry::intersects (#775)
      perf_intersection: Allow selection of predicate and operation
      Benchmarks: Add PreparedPolygonIntersectPerfTest
      DouglasPeuckerSimplifier: Allow ring origin to be removed (#773)
      RepeatedPointRemover: Allow creating LinearRing of length 3 (#763)
      PreparedPolygonIntersects: Use SimplePointInAreaLocator for first test (#777)
      NodingIntersectionFinder: Fix false-positive intersection (#780)
      CI: Add 32-bit build (#746)
      Perf testing: Add benchmark comparing point locators
      Convert Voronoi perf test to Google benchmark
      Fix some C API doc errors
      Add some C API tests
      Add tests for GEOSWKBWriter
      Add test for GEOSSTRtree_iterate
      Add test for GEOSInterpolateNormalized
      Add tests for some CAPI error paths
      Add tests for more paths in GEOSCoordSeq functions
      GEOSLineSubstring: Fix input validation for reversed substring
      GEOSHasZ: Fix incorrect result for XYM geometry
      CAPI: Remove null checks from functions that do not return null
      Add buffer params tests
      Add GEOSWKBReader tests
      Add GEOSWKTWriter test
      Add tests for GEOSGeomToHEX_buf_r
      Add tests for CAPI error and notice handlers
      Add test for GEOSGeom_clone
      Add test for GEOSTopologyPreserveSimplify
      Remove bigtest (#785)
      Remove thread test (#787)
      Remove geostest (#786)
      Voronoi: Add option to reorder diagram to match order of input points (#781)
      TopologyPreservingSimplifier: Allow ring origin to be removed (#784)
      Avoid FE_INVALID on operations with empty Envelopes
      Add Envelope tests and fix incorrect implementation of Envelope::disjoint
      Add NEWS entries
      Remove some parts of old overlay engine (#788)
      Envelope: Add hasher struct
      Remove SimpleWKTTester (#793)
      Fix crash on on empty Voronoi diagram (#796)
      Fix CoordinateXYZM construction from CoordinateXYM
      RepeatedPointRemover: Preserve input coordinate sequence dimension
      WKTWriter: Output dimension flags for empty geometries (#792)
      GeometryFactory: Create Points from all Coordinate types
      Polygonizer: Fix duplicate results from getInvalidRingLines() (#801)
      Point: Make getCoordinate() return CoordinateXY
      IndexedPointInAreaLocator: Support all CoordinateSequence dimensions
      CoordinateFilter: Support multiple CoordinateSequence dimensions (#799)
      CoordinateSequence: Add type-detecting forEach for use with auto lambdas
      CI: Switch C++11 builds to C++14
      Doc: Update doc references to C++11
      Remove std::make_unique backport
      GeometryFactory: Construct MultiPoint with correct dims from CoordinateSequence
      Add GEOSEqualsIdentical C API function for checking pointwise equivalence (#810)
      OverlayNG: Interpolate M values (#802)
      NEWS update
      Area: Use 2D coordinate access
      LineString: Avoid 3D coordinate access in isClosed()
      Orientation::isCCW: Avoid coord copy and 3d access
      computeOrientationTest: Avoid 3D coord access
      Polygon::getCoordinates: Preserve coordinate dimension
      RayCrossingCounter: Avoid 3d coordinate access
      Length: Avoid 3d coordinate access
      LineString::getCoordinate: Avoid 3d coord access
      InteriorPointArea: Avoid 3d coord access
      Centroid: Avoid 3d coordinate access
      LineString: Preserve dimension in normalize()
      Point::isEmpty(): Avoid 3d coord access
      PointLocator: Avoid 3d coordinate access
      GEOSCoordSeq_getXY: Avoid 3d coordinate access
      MonotoneChain: Avoid 3d coordinate access
      GEOSGeom_transformXY: Avoid 3d coordinate access
      IsValidOp: Remove 3d coordinate access
      SegmentIntersectionDetector: Avoid 3d coordinate access
      DistanceOp: Avoid 3d coordinate access
      DisjointOperation: Fix compile error, add test
      GeometryFactory: Ensure empty geometries 2D by default (#819)
      BufferBuilder: Propagate input geom dimensionality
      WKTWriter: Disable removal of empty dimensions by default
      Polygon: Remove unnecessary duplication of shell envelope
      Add multithreaded test for Geometry::relate
      Geometry: Calculate envelope eagerly
      Fix MSVC build
      Fix crash on GC union with empty points (#831)
      GEOSSTRtree_iterate: Do not return removed items (#834)
      Add NEWS entry for GH-833
      GEOSBuffer: Fix segfault with Inf coords (#836)
      IndexedFacetDistance: Avoid crash on Inf inputs
      Add test for GH-821
      geosop: Add hausdorffDistance
      HausdorffDistance: Fix crash on collection with empty components
      DistanceOp: Fix crash on collection with empty component (#842)
      MaximumInscribedCircle: Fix infinite loop with non-finite coordinates (#843)
      C API: Add GEOSSTRtree_build (#835)
      Relax equality test in GEOSUnaryUnionTest
      Add DisjointSubsetUnion
      AbstractClusterFinder: Ensure that greatest complexity geometries are prepared
      CI: Use ccache for Linux, MacOS, and mingw64 builds (#845)
      C API: Add \since tags
      C API: Add more \since tags
      CMake: Remove test_cs target
      Add GEOSOrientPolygons (#818)
      CoordinateSequence: Fix logic error when adding another CoordSeq (#963)

Even Rouault (1):
      Make NodeMap::nodeMap hold a std::unique_ptr<>, and other const related cppcheck fixes (#664)

Eyal (1):
      fix: maxX (#715)

Heiko Becker (1):
      Fix build with gcc 13 by including <cstdint> (#805)

Joris Van den Bossche (3):
      DOC: add missing entry to NEWS (empty points change) (#658)
      DOC: update GEOSCoordSeq_create doc comment about dimension argument (#771)
      Avoid FE_INVALID floating point errors in HausdorffDistance and VoronoiDiagram (#806)

Kai Pastor (2):
      Remove obsolete code for .inl (#738)
      Extend msvc (DLL) configuration to clang-cl and mingw (#739)

Loïc Bartoletti (1):
      geosop: GeosOp.cpp: catch ParseException (#668)

Martijn Visser (1):
      DOC: GEOSEquals place -> plane (#778)

Martin Davis (107):
      Add NEWS items for 3.11
      Fix geosop to output full FP precision
      Change geosop to output result unless quieted
      Add geosop aggregate functions flag
      Fix geosop agg function creation
      Define geosop agg ops
      Improve geosop help doc
      Remove inaccurate comment
      Improve CoverageValidator definition
      Fix CoverageValidator, add unit test and geosop op
      geosop - recategorize coverage ops
      Fix PreparedGeometry for EMPTY elements (#678)
      Standardize PreparedGeometryTouches test
      Add geosop ops maxDiameter and minDiameter
      Edit EOL policy
      Fix EOL policy wording
      Clarify EOL doc wording
      Add geosop op relateBNR
      Fix LineSegment.orientationIndex(LineSegment) (#699)
      Update NEWS
      Fix DepthSegment comparison op (#707)
      Update NEWS
      Fix typo in DepthSegment.compareTo
      Add OverlayNG support for simple GeometryCollection inputs (#716)
      Update NEWS.md
      Remove obsolete Azure CI badges
      Remove Azure CI list from website
      Fix TPSimplifier to be deterministic (#718)
      Update NEWS.md
      Improve ConvexHull radial sort robustness (#724)
      Update NEWS
      Clean up ConvexHull unit tests
      More robust Delaunay Triangulation frame size heuristic (#728)
      Update NEWS
      Fix NEWS
      Improve C-API doc for ConcaveHull
      Improve C API doc linking
      Try to fix doxygen deploy for for main branch
      Improve C API doc descriptions, function order
      Add GEOSConcaveHullByLength
      Add geosop concaveHullByLength
      Fix OffsetCurve to handle zero-distance offset (#852)
      Add Tri invalid index exceptions (#853)
      Add doc for GeoPHP binding
      Enhance LargestEmptyCircle boundary handling (#859)
      Update NEWS
      Update NEWS
      Update NEWS
      Improve geosop performance, refactor (#861)
      Fix doc WKT examples
      Fix doc WKT examples
      Refactor geosop op parameters
      Allow geosop ops to have 2 parameters
      Rename geosop vars
      Add geosop offset argument
      Add doc bindings entry
      Add geosop coverageSimplify
      Add unit test for GEOSCoverageSimplifyVW for inner
      Improve C API doc
      Improve GEOS C API header doc
      C APi doc improvments
      Minor C API doc improvements
      C API doc formatting
      Add note to try sorting in CoverageUnion
      Add geosop node operation
      Add gesoop operation unaryUnionSR
      Remove Orientation.isCCW exception (#878)
      Fix Coverage ops to handle empty and collapsed cases (#879)
      Fix doxygen link
      Fix and improve MIC and LEC (#883)
      Update NEWS
      Update NEWS
      Add web doc for CMake option
      Improve geosop OffsetCurve call
      Fix OffsetCurve EndCap parameter handling (#899)
      Update NEWS
      Improve C-API doc for GEOSPolygonize_valid
      Add geosOp polygonizeValid
      Update NEWS.md
      Fix PolygonNodeTopology unit tests
      Fix IncrementalDelaunayTriangulator to ensure triangulation boundary is convex (#953)
      Add const decls to IncrementalDelanayTriangulator
      Update NEWS
      Fix PreparedLineStringDistance for lines within envelope and polygons (#959)
      Update NEWS
      Remove debug prints
      Remove debugging output
      Improve scale handling for PrecisionModel (#956)
      Update NEWS
      Fix InteriorPointPoint to handle empty elements (#977)
      Update NEWS
      Fix TopologyPreservingSimplifier endpoint handling to avoid self-intersections (#986)
      Update NEWS
      Clean up simplifier unit test code
      Fix DiscreteHausdorffDistance for LinearRing (#1000)
      Update NEWS
      Fix IsSimpleOp for MultiPoint with empty element (#1005)
      Update NEWS
      Add geosop operation largestEmptyCircleBdy
      Fix PreparedPolygonContains for GC with MultiPoint (#1008)
      Update NEWS
      Add geosop minAreaRectangle op
      Fix buffer Inverted Ring Removal check (#1056)
      Update NEWS
      Add CoveragePolygonValidator section performance optimization (#1099)
      Update NEW
      change to using auto in Coverage classes

Max Gabrielsson (1):
      Remove warning by changing sprintf to snprintf (#789)

Mike Taves (26):
      Add/sort .mailmap
      Amend a few more .mailmap entries
      Add linear referencing functions "interpolate" and "project" to geosop (#858)
      geosop: add 'hasZ' and 'hasM' operations; change output to show Z/M (#862)
      Add Point::getM() to C++ API and GEOSGeomGetM to C API (#864)
      Change WKTWriter Old3D option to only add "M" for XYM (#871)
      geosop: set default nArgs = 0 to fix "wrong number of arguments for operation"
      CAPI: fix GEOSHasZ with empty geometries (#887)
      Fix reading MultiPoint Z/M WKT (#901)
      geosop: add option to output GeoJSON (#911)
      Improve util/geosop/README.md
      GeoJSONReader: Fix 2D empty geometry creation (#909)
      Change MultiPoint WKT to use parentheses in sub-members (#903)
      docs: add USE_CCACHE; a few corrections/improvements related to CMake
      Upgrade GH actions for container.yml
      GHA: provide unique Job ID names (for `act -l` and `act -j name`)
      Change WKBWriter default output dimension to 4 (#908)
      TST: swap "ensure_equals(y,x)" to correct "ensure_equals(x,y)"
      GEOSClipByRect: Fix case with POINT EMPTY, add more tests (#913)
      Change WKTWriter default output dimension to 4 and trim to 'on' (#915)
      CI: workaround for actions/runner-images#8659
      CI: tune ubuntu/clang workaround
      Fix StringTokenizer::peekNextToken (#1025)
      Make line intersection computation more robust (#937)
      Regression test for mitre buffer that previously made an invalid geometry
      Test overlay op with mixed GeometryCollection

Paul Ramsey (108):
      Bump main versions forj 3.12 dev
      UTC time zone on post
      draft false
      trying to find a date format hugo likes
      date format
      Port locationtech/jts#900
      Add news entry for JTS-900 port
      Fix CI for older gcc versions
      Fix CI for older gcc versions
      clarify links in README
      Bump actions/checkout to v3 per GH deprecation warnings
      Add endian switch for hexwkb test
      Fix spelling error in getFrechetDistance, closes #725
      Remove RETURN_UNIQUE_PTR and support for gcc-4.8, closes #589 (#726)
      Link to 3.11.1 download
      Bump current_release
      Update download links for 3.10 and 3.9
      Fix link to NEWS url
      Quiet doxygen 1.9.5 errors
      Patch release news post
      Bump actions/checkout to v3 to quiet GHA warnings
      Bump to ubuntu 20 for all gcc versions that support it.
      Port of locationtech/jts#946, fixes
      Remove dead code and pass const references instead
      Port locationtech/jts#952
      Update link to 3.6.6 EOL release
      Update documentation on snapper to remove old guidance on using snapping as a bandaid for overlay failures.
      Disallow Inf envelopes in Quadtree.
      Add test to ensure isValid tests for infinite coordinates
      Fix XML test
      Remove memory leak in case where argB contains invalid WKT
      Add an 'ASAN' build type to CMake build, which turns on the
      Woops, turn on the other CI targets
      Remove use of ubuntu-18.04 to prepare for deprecation.
      Add ASAN builds for MacOS
      Reorganize web layout a little
      Improve OffsetCurve behaviour and add Joined mode.
      Update cmake message to reflect new C++ std
      Include stdc++ in static linking, references GH-783
      Add test <24> for GH-811
      Add test for GH-662
      Preserve collection-level of the input geometry on the output reduced geometry.
      Guard against non-finite distances in OffsetCurve and BufferOp.
      Port JTS locationtech/jts#965
      Remove ASAN cflag options from the cache
      Fix syntax error in conditional build
      Only run container job on project repo
      Update DL links for 3.10.5 and 3.11.2
      News item on 3.11.2 release
      Port Coverage Simplification locationtech/jts#911
      Fix spelling mistake for "LessThan", inline some STL container support methods
      Remove unneeded aliases in CAPI
      link to other downstream projects
      Finish up marking since on CAPI, closes #854
      CAPI: GEOSCoverageIsValid, GEOSCoverageSimplifyVW GH-867
      Move CoverageUnion into the coverage section
      Add some CAPI tests for the Coverage functionality.
      Move to overlayng CoverageUnion, after testing a number of cases, seems mostly the better performing one.
      Revert "Move to overlayng CoverageUnion, after testing a number of cases, seems mostly the better performing one."
      Add an interrupt check to that in interactive use a user can cancel a long-running MaximumInscribedCircle operation, GH-875
      Throw exception on non-initialization rather than quiet failure, GH-873 (#880)
      Add GEOSGeom_releaseCollection to CAPI (#882)
      Use the coverage/CoverageUnion for the CAPI GEOSCoverageUnion
      remove EOLed versions from download list
      Update current release number
      Update TocTree to use custom entry for news. Update theme files.
      higher res logo
      Add MinimumAreaRectangle, a bounding rectangle algorithm.
      Update NEWS for MinimumAreaRectangle
      * Port locationtech/jts#981
      Add unit test for QGIS reported offset curve weirdness from @strk
      Add note on changed behaviour in CoverageUnion
      Prep 3.12.0beta1
      Back to dev patchword
      GEOSDistanceCallback documentation gives wrong information about required return values
      Fix license to match GEOS project license
      Remove defunct doxygen entry
      Add STRTree example to web documentation
      Add another example program, showing spatial index and user data
      Add entry for new example
      Overlay with mixed dimension (#923)
      3.12.0beta2 release
      back to dev version suffix
      Version number / news for release 3.12
      remove web from 3.12 branch
      Remove undefined behaviour in use of null PrecisionModel, closes #931
      Remove undefined behaviour in use of null PrecisionModel, closes #931
      Explicitly set endianness for some tests so that output matches expected. Closes #934
      News item for GH-934
      Fix final WKB test, GH-934
      Skip over testing empty distances for mixed collections. Closes #979
      News entry for #979
      Fix build on Illumus (GH-971)
      Port JTS-819, Add IntersectionLineSegment function,
      News entry for GH-995
      Fix mis-named test function in GH-995 fix
      Add test for LINESTRING EMPTY, GH-993
      Return 2D empty linestring on GEOSGeom_createLineString(NULL) (#998)
      News item for GH-998
      PointOnSurface crashes with a collection containing a empty linestring GH-1002
      News entry for GH-1002
      Add a test to guard against LEC bug GH-1003
      Fix TopologyPreservingSimplifier to prevent jumping components causing incorrect topology (#1012)
      Fix segfault when coverage simplify called with nonpolygons, references GH-1031 (#1039)
      News for GH-1039
      Remove cmake version requirement as it gets checked in the parent file
      Add missing doxygen entries for rtree, references #1096
      Prep for 3.12.2 release

Peter Stace (1):
      Clarify coverage union behaviour with unmet constraints (#890)

Regina Obe (30):
      Mark 3.5.2 as eol'd
      Fix typo in last commit
      First pass at an EOL policy
      First pass at an EOL / Version policy
      Fix typos
      Add the word generally so we are not committed to releasing in 1-2 years
      Put in estimated final and final dates, and link to rfc11 per - https://lists.osgeo.org/pipermail/geos-devel/2022-September/010784.html
      Reorder the PSC alphabetically.  Current order was in no meaningful order
      Fix Martin's github link
      get rid of emojis, center columns, add Current in front of most current release
      Add a final release column, and a note that all future dates are subject to change
      Put final future dates in italics
      Correct PostGIS url
      Paul is now officially new chair, cause someone has to be chair per https://lists.osgeo.org/pipermail/geos-devel/2022-October/010796.html
      Fix unsigned conversion issue on arm.  Closes libgeos/geos#698
      Mark GEOS 3.6.5 as EOL
      Oops changes have been made since last release of 3.6.5. Push the final date out to future
      Unitalicize the geos 3.6 final release, since it's passed
      Add link to 3.11 doxygen docs
      Prevent web deploy from overwriting doxygen folder
      Revert GH-828 - group decided putting since in the docs is simpler
      Fix EOL policy link on download page
      Fix email on code of conduct page. That old email was phased out long ago
      Fix copy paste error
      Update berrie64 and winnie tool list
      Prepping for 3.12.1 release
      Add some missing note items. Revise release instructions
      Put back in dev mode
      Try to test i386 bookworm to uncover GH-947 issues
      Fix ci badges to point at 3.12

Sandro Mani (1):
      Fix multiple docstring issues (#647)

Sandro Santilli (9):
      [gitlab-ci] skip make check, keep distcheck
      Encode latest port commit for BufferBuilder
      Encode latest port commit for BufferCurveSetBuilder
      Fix debug build of BufferBuilder.cpp
      Use xml prefix for xml tests (#893)
      Make MCIndexNoder::intersectChains interruptible
      Reduce interrupt checks in MCIndexNoder::intersectChains
      Only keep biggest polygon from single-sided buffer
      Fix single-sided buffer of multigeoms (#912)

Sergei Trofimovich (1):
      Add missing <cstdint> includes for gcc-13 (#743)

Timofey Samsonov (1):
      Doc: Change duplicated LinearRing to LineString (#768)

Tom Payne (1):
      Replace scripting language bindings with link to all language bindings (#676)

Ulysse Buonomo (1):
      Change `GEOSVoronoiDiagram` to return edges as MultiLineString (#702)

jMichaelA (1):
      Added illumos macro for int8_t parse_value override. chars are signed in illumos implementation of stdint.h. (#971)
@jodygarnett jodygarnett added this to the 1.20.0 milestone Aug 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants