public class GeometrySnapper extends Object
Geometry
to another Geometry's vertices.
A snap distance tolerance is used to control where snapping is performed.
Snapping one geometry to another can improve
robustness for overlay operations by eliminating
nearly-coincident edges
(which cause problems during noding and intersection calculation).
Too much snapping can result in invalid topology
beging created, so the number and location of snapped vertices
is decided using heuristics to determine when it
is safe to snap.
This can result in some potential snaps being omitted, however.Constructor and Description |
---|
GeometrySnapper(Geometry srcGeom)
Creates a new snapper acting on the given geometry
|
Modifier and Type | Method and Description |
---|---|
static double |
computeOverlaySnapTolerance(Geometry g)
Estimates the snap tolerance for a Geometry, taking into account its precision model.
|
static double |
computeOverlaySnapTolerance(Geometry g0,
Geometry g1) |
static double |
computeSizeBasedSnapTolerance(Geometry g) |
Coordinate[] |
extractTargetCoordinates(Geometry g) |
static Geometry[] |
snap(Geometry g0,
Geometry g1,
double snapTolerance)
Snaps two geometries together with a given tolerance.
|
Geometry |
snapTo(Geometry snapGeom,
double snapTolerance)
Snaps the vertices in the component
LineString s
of the source geometry
to the vertices of the given snap geometry. |
Geometry |
snapToSelf(double snapTolerance,
boolean cleanResult)
Snaps the vertices in the component
LineString s
of the source geometry
to the vertices of the given snap geometry. |
static Geometry |
snapToSelf(Geometry g0,
double snapTolerance,
boolean cleanResult) |
public GeometrySnapper(Geometry srcGeom)
srcGeom
- the geometry to snappublic static double computeOverlaySnapTolerance(Geometry g)
g
- a Geometrypublic static double computeSizeBasedSnapTolerance(Geometry g)
public static double computeOverlaySnapTolerance(Geometry g0, Geometry g1)
public static Geometry[] snap(Geometry g0, Geometry g1, double snapTolerance)
g0
- a geometry to snapg1
- a geometry to snapsnapTolerance
- the tolerance to usepublic static Geometry snapToSelf(Geometry g0, double snapTolerance, boolean cleanResult)
public Geometry snapTo(Geometry snapGeom, double snapTolerance)
LineString
s
of the source geometry
to the vertices of the given snap geometry.snapGeom
- a geometry to snap the source topublic Geometry snapToSelf(double snapTolerance, boolean cleanResult)
LineString
s
of the source geometry
to the vertices of the given snap geometry.snapTolerance
- the snapping tolerancecleanResult
- whether the result should be made validpublic Coordinate[] extractTargetCoordinates(Geometry g)
Copyright © 2016. All rights reserved.