[geos-commits] [SCM] GEOS branch main updated. 7dfd43b6b5ab718abfc4ebee79834b27eb4bd9b1

git at osgeo.org git at osgeo.org
Thu Jul 9 10:46:38 PDT 2026


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GEOS".

The branch, main has been updated
       via  7dfd43b6b5ab718abfc4ebee79834b27eb4bd9b1 (commit)
       via  31d5c40bb349e6c8528da368b9fd058b0670aa22 (commit)
      from  96292c0df9587f6a6cb9d0b00e52772db2672348 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 7dfd43b6b5ab718abfc4ebee79834b27eb4bd9b1
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date:   Thu Jul 9 10:46:12 2026 -0700

    Put breaking changes up front in news

diff --git a/NEWS.md b/NEWS.md
index c2872e8dc..1765d1eec 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -2,6 +2,12 @@
 ## Changes in 3.15.0
 2026-xx-xx
 
+- Breaking Changes:
+  - BufferOp returns POLYGON EMPTY when fed Inf/Nan coords (GH-1332)
+  - Return Inf when calculating distance to an empty geometry (GH-1345, Even Rouault)
+  - Overlay operations now produce a LineString geometry in cases that would previously
+    produce a MultiLineString with contiguous sub-geometries. (GH-1459, Dan Baston)
+
 - New things:
   - Add GEOSMinimumSpanningTree (Paul Ramsey)
   - Add GEOSCoverageEdges (Paul Ramsey)
@@ -20,13 +26,6 @@
   - Add GeometrySplitter (GH-1424, Dan Baston)
   - Add progress reporting to GEOSCoverageSimplify, GEOSUnaryUnion (GH-1466, Even Rouault / Dan Baston)
 
-- Breaking Changes:
-  - BufferOp returns POLYGON EMPTY when fed Inf/Nan coords (GH-1332)
-  - Return Inf when calculating distance to an empty geometry (GH-1345, Even Rouault)
-  - Overlay operations now produce a LineString geometry in cases that would previously
-    produce a MultiLineString with contiguous sub-geometries. (GH-1459, Dan Baston)
-
-
 - Fixes/Improvements:
   - Buffer of Linestring includes spurious hole (GH-1217, Moritz Kirmse)
   - Preserve M values in GEOSInterpolate (GH-1390, Dan Baston)
@@ -42,6 +41,7 @@
   - Overlay performance improvements (GH-1353, arriopolis, Martin Davis)
   - Fix unintended ring rotation in Overlay results (GH-1412, Dan Baston)
 
+
 ## Changes in 3.14.0
 2025-08-21
 

commit 31d5c40bb349e6c8528da368b9fd058b0670aa22
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date:   Thu Jul 9 10:45:05 2026 -0700

    Document output type letters for geosop
    
    Adds documentation on output letters and
    makes them consistent with what they
    actually do. Closes #1465

diff --git a/util/geosop/GeometryOp.cpp b/util/geosop/GeometryOp.cpp
index 7ef4c4613..df913da38 100644
--- a/util/geosop/GeometryOp.cpp
+++ b/util/geosop/GeometryOp.cpp
@@ -183,6 +183,7 @@ std::vector<GeometryOpCreator> opRegistry {
 {"lineMerge",  [](std::string name) { return GeometryOp::create(name,
     catGeom,
     "merge the lines of geometry",
+    Result::typeGeomList,
         [](const Geometry& geom) {
             geos::operation::linemerge::LineMerger lmrgr;
             lmrgr.add(&geom);
@@ -554,6 +555,7 @@ std::vector<GeometryOpCreator> opRegistry {
 {"polygonize", [](std::string name) { return GeometryOp::create(name,
     catConst,
     "polygonize lines",
+    Result::typeGeomList,
     [](const Geometry& geom) {
         geos::operation::polygonize::Polygonizer p;
         p.add(&geom);
@@ -569,6 +571,7 @@ std::vector<GeometryOpCreator> opRegistry {
 {"polygonizeValid", [](std::string name) { return GeometryOp::create(name,
     catConst,
     "polygonize lines into a valid polygonal geometry",
+    Result::typeGeomList,
     [](const Geometry& geom) {
         geos::operation::polygonize::Polygonizer p(true);
         p.add(&geom);
@@ -992,6 +995,7 @@ std::vector<GeometryOpCreator> opRegistry {
 
 {"coverageClean", [](std::string name) { return GeometryOp::createAgg(name,
     catCoverage, "cleans a coverage, merging gaps narrower than a given width",
+    Result::typeGeomList,
     [](const Geometry& geom, double gapWidth) {
         std::vector<const Geometry*> coverage = toList(geom);
         std::vector<std::unique_ptr<Geometry>> result
@@ -1006,6 +1010,7 @@ std::vector<GeometryOpCreator> opRegistry {
 }},
 {"coverageSimplify", [](std::string name) { return GeometryOp::createAgg(name,
     catCoverage, "simplify a polygonal coverage by a distance tolerance",
+    Result::typeGeomList,
     [](const Geometry& geom, double d) {
         std::vector<const Geometry*> coverage = toList(geom);
         std::vector<std::unique_ptr<Geometry>> result
@@ -1032,6 +1037,7 @@ std::vector<GeometryOpCreator> opRegistry {
 }},
 {"coverageValidate", [](std::string name) { return GeometryOp::createAgg(name,
     catCoverage, "validate a polygonal coverage",
+    Result::typeGeomList,
     [](const Geometry& geom) {
         std::vector<const Geometry*> coverage = toList(geom);
         std::vector<std::unique_ptr<Geometry>> invalidList
diff --git a/util/geosop/GeometryOp.h b/util/geosop/GeometryOp.h
index 628e2c821..320d2d893 100644
--- a/util/geosop/GeometryOp.h
+++ b/util/geosop/GeometryOp.h
@@ -151,6 +151,14 @@ public:
         return new GeometryOp(name, cat, desc, true, Result::typeGeometry, fun);
     }
 
+    static GeometryOp* createAgg(std::string name,
+                    std::string cat,
+                    std::string desc,
+                    int resType,
+                    geomFunSig_G fun) {
+        return new GeometryOp(name, cat, desc, true, resType, fun);
+    }
+
     static GeometryOp* createAgg(std::string name,
                     std::string cat,
                     std::string desc,
@@ -158,6 +166,14 @@ public:
         return new GeometryOp(name, cat, desc, true, Result::typeGeometry, fun);
     }
 
+    static GeometryOp* createAgg(std::string name,
+                    std::string cat,
+                    std::string desc,
+                    int resType,
+                    geomFunSig_GD fun) {
+        return new GeometryOp(name, cat, desc, true, resType, fun);
+    }
+
     static GeometryOp* find(std::string name);
     static std::vector<std::string> listOps();
 
diff --git a/util/geosop/GeosOp.cpp b/util/geosop/GeosOp.cpp
index 3e91c1d3b..398085519 100644
--- a/util/geosop/GeosOp.cpp
+++ b/util/geosop/GeosOp.cpp
@@ -125,6 +125,12 @@ int main(int argc, char** argv) {
             std::cout << "- to use negative numeric op arguments use '--' before the op name" << std::endl;
             std::cout << "- Negative numeric op arguments can be specified with leading N:  e.g. N-0.1" << std::endl;
             std::cout << std::endl;
+            std::cout << "Operation signature legend:" << std::endl;
+            std::cout << "  Inputs: A - geometry A   B  - geometry B     N - numeric argument" << std::endl;
+            std::cout << "  Result: G - geometry    [G] - geometry list  B - boolean" << std::endl;
+            std::cout << "          D - double       I  - integer        S - string" << std::endl;
+            std::cout << "  Flags:  AGG - operates on collected (aggregated) geometry" << std::endl;
+            std::cout << std::endl;
             std::cout << "Operations:" << std::endl;
             std::vector<std::string> ops = GeometryOp::listOps();
             for (auto opName : ops) {

-----------------------------------------------------------------------

Summary of changes:
 NEWS.md                    | 14 +++++++-------
 util/geosop/GeometryOp.cpp |  6 ++++++
 util/geosop/GeometryOp.h   | 16 ++++++++++++++++
 util/geosop/GeosOp.cpp     |  6 ++++++
 4 files changed, 35 insertions(+), 7 deletions(-)


hooks/post-receive
-- 
GEOS


More information about the geos-commits mailing list