public class OverlayNGRobust extends Object
OverlayNG
,
providing full robustness by using a series of
increasingly robust (but slower) noding strategies.
The noding strategies used are:
SnappingNoder
using an automatically-determined snap tolerance
SnappingNoder
.
SnapRoundingNoder
is used with a automatically-determined scale factor
intended to preserve input precision while still preventing robustness problems.
TopologyException
is thrown.
In practice this is extremely unlikely to occur.
This algorithm relies on each overlay operation execution
throwing a TopologyException
if it is unable
to compute the overlay correctly.
Generally this occurs because the noding phase does
not produce a valid noding.
This requires the use of a ValidatingNoder
in order to check the results of using a floating noder.
OverlayNG
Constructor and Description |
---|
OverlayNGRobust() |
Modifier and Type | Method and Description |
---|---|
static Geometry |
overlay(Geometry geom0,
Geometry geom1,
int opCode)
Overlay two geometries, using heuristics to ensure
computation completes correctly.
|
static Geometry |
union(Collection<Geometry> geoms)
Computes the unary union of a collection of geometries using robust computation.
|
static Geometry |
union(Collection<Geometry> geoms,
GeometryFactory geomFact)
Computes the unary union of a collection of geometries using robust computation.
|
static Geometry |
union(Geometry geom)
Computes the unary union of a geometry using robust computation.
|
public static Geometry union(Geometry geom)
geom
- the geometry to unionUnaryUnionOp
public static Geometry union(Collection<Geometry> geoms)
geoms
- the collection of geometries to unionUnaryUnionOp
public static Geometry union(Collection<Geometry> geoms, GeometryFactory geomFact)
geoms
- the collection of geometries to uniongeomFact
- the geometry factory to useCopyright © 2022. All rights reserved.