[geos-devel] [GEOS] #962: GEOSNode is much slower that GEOSUnaryUnion
GEOS
geos-trac at osgeo.org
Mon Aug 26 16:21:53 PDT 2019
#962: GEOSNode is much slower that GEOSUnaryUnion
------------------------+---------------------------
Reporter: komzpa | Owner: geos-devel@…
Type: defect | Status: new
Priority: major | Milestone:
Component: Default | Version: 3.6.2
Severity: Unassigned | Resolution:
Keywords: |
------------------------+---------------------------
Comment (by mdavis):
One further note is that it looks like GEOS is using a original
[https://github.com/libgeos/geos/blob/master/src/operation/union/CascadedUnion.cpp
Cascaded Union] approach for UnaryUnion for both polygons and lines. In
fact in theory using a Cascaded approach on lines doesn't provide much
performance benefit, because unlike polygons unioning lines doesn't
discard many if any vertices.
JTS doesn't do this in its UnaryUnion- it just does a
[https://github.com/locationtech/jts/blob/master/modules/core/src/main/java/org/locationtech/jts/operation/union/UnaryUnionOp.java#L209
full union] of the line with an empty geometry, which effectively forces
the noding of the lines (but may throw a TopologyException if the noding
can't be computed correctly due to robustness issues - this is
demonstrated in #392).
I guess the GEOS approach handles noding issues better, due to the
snapping heuristic in the mix. But this is something else that could be
revisited when the new overlay hits the codebase.
--
Ticket URL: <https://trac.osgeo.org/geos/ticket/962#comment:4>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).
More information about the geos-devel
mailing list