[geos-commits] [SCM] GEOS branch main updated. fe55745374aa5622b35fe349b46c0dd4ecfa3cb0
git at osgeo.org
git at osgeo.org
Mon Apr 24 19:18:13 PDT 2023
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 fe55745374aa5622b35fe349b46c0dd4ecfa3cb0 (commit)
via 09c10ed41c826ed0ea6c02da6f80709e4f30fe2b (commit)
from fb8c78acbf351ac1e124d2a872f997c9d4851a0c (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 fe55745374aa5622b35fe349b46c0dd4ecfa3cb0
Author: Martin Davis <mtnclimb at gmail.com>
Date: Mon Apr 24 19:17:43 2023 -0700
Add geosop node operation
diff --git a/util/geosop/GeometryOp.cpp b/util/geosop/GeometryOp.cpp
index 228e6b116..a82e017bf 100644
--- a/util/geosop/GeometryOp.cpp
+++ b/util/geosop/GeometryOp.cpp
@@ -35,6 +35,7 @@
#include <geos/geom/util/Densifier.h>
#include <geos/geom/util/GeometryFixer.h>
#include <geos/linearref/LengthIndexedLine.h>
+#include <geos/noding/GeometryNoder.h>
#include <geos/operation/buffer/BufferBuilder.h>
#include <geos/operation/buffer/BufferOp.h>
#include <geos/operation/buffer/BufferParameters.h>
@@ -784,6 +785,13 @@ std::vector<GeometryOpCreator> opRegistry {
return new Result( OverlayNG::overlay(geom.get(), geomB.get(), OverlayNG::UNION, &pm) );
});
}},
+{"node", [](std::string name) { return GeometryOp::create(name,
+ catOverlay,
+ "compute fully noded geometry",
+ [](const std::unique_ptr<Geometry>& geom) {
+ return new Result( geos::noding::GeometryNoder::node( *geom ) );
+});
+}},
{"clipRect", [](std::string name) { return GeometryOp::create(name,
catOverlay,
"clip geometry A to envelope of B",
commit 09c10ed41c826ed0ea6c02da6f80709e4f30fe2b
Author: Martin Davis <mtnclimb at gmail.com>
Date: Mon Apr 24 19:17:30 2023 -0700
Add note to try sorting in CoverageUnion
diff --git a/src/coverage/CoverageUnion.cpp b/src/coverage/CoverageUnion.cpp
index 010dfb198..4ff5e5fe2 100644
--- a/src/coverage/CoverageUnion.cpp
+++ b/src/coverage/CoverageUnion.cpp
@@ -18,6 +18,7 @@
#include <geos/geom/GeometryCollection.h>
#include <geos/geom/GeometryFactory.h>
#include <geos/operation/overlayng/CoverageUnion.h>
+//#include <geos/shape/fractal/HilbertEncoder.h>
using geos::geom::Geometry;
using geos::geom::GeometryCollection;
@@ -35,6 +36,10 @@ CoverageUnion::Union(std::vector<const Geometry*>& coverage)
if (coverage.size() == 0)
return nullptr;
+ //TODO? spatial sort polgyons to improve performance
+ // Test results are somewhat inconclusive
+ //shape::fractal::HilbertEncoder::sort(coverage.begin(), coverage.end());
+
const GeometryFactory* geomFact = coverage[0]->getFactory();
std::unique_ptr<GeometryCollection> geoms(geomFact->createGeometryCollection(coverage));
return operation::overlayng::CoverageUnion::geomunion(geoms.get());
@@ -43,5 +48,3 @@ CoverageUnion::Union(std::vector<const Geometry*>& coverage)
} // namespace geos.coverage
} // namespace geos
-
-
-----------------------------------------------------------------------
Summary of changes:
src/coverage/CoverageUnion.cpp | 7 +++++--
util/geosop/GeometryOp.cpp | 8 ++++++++
2 files changed, 13 insertions(+), 2 deletions(-)
hooks/post-receive
--
GEOS
More information about the geos-commits
mailing list