object GeometryEditor
A class which supports creating new {link Geometry}s which are modifications of existing ones, maintaining the same type structure. Geometry objects are intended to be treated as immutable. This class "modifies" Geometrys by traversing them, applying a user-defined {link GeometryEditorOperation}, {link CoordinateSequenceOperation} or {link CoordinateOperation} and creating new Geometrys with the same structure but (possibly) modified components.
Examples of the kinds of modifications which can be made are:
- the values of the coordinates may be changed. The editor does not check whether changing coordinate values makes the result Geometry invalid
- the coordinate lists may be changed (e.g. by adding, deleting or modifying coordinates). The modified coordinate lists must be consistent with their original parent component (e.g. a LinearRing must always have at least 4 coordinates, and the first and last coordinate must be equal)
- components of the original geometry may be deleted (e.g. holes may be removed from a Polygon, or LineStrings removed from a MultiLineString). Deletions will be propagated up the component tree appropriately.
All changes must be consistent with the original Geometry's structure (e.g. a Polygon cannot be collapsed into a LineString). If changing the structure is required, use a {link GeometryTransformer}.
This class supports creating an edited Geometry
using a different GeometryFactory via the {link #GeometryEditor(GeometryFactory)}
constructor.
Examples of situations where this is required is if the geometry is
transformed to a new SRID and/or a new PrecisionModel.
Usage Notes
- The resulting Geometry is not checked for validity. If validity needs to be enforced, the new Geometry's {link Geometry#isValid} method should be called.
- By default the UserData of the input geometry is not copied to the result.
- Version
1.7
- See also
GeometryTransformer
Geometry#isValid
- Alphabetic
- By Inheritance
- GeometryEditor
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- abstract class CoordinateOperation extends GeometryEditorOperation
A {link GeometryEditorOperation} which edits the coordinate list of a {link Geometry}.
A {link GeometryEditorOperation} which edits the coordinate list of a {link Geometry}. Operates on Geometry subclasses which contains a single coordinate list.
- abstract class CoordinateSequenceOperation extends GeometryEditorOperation
A {link GeometryEditorOperation} which edits the {link CoordinateSequence} of a {link Geometry}.
A {link GeometryEditorOperation} which edits the {link CoordinateSequence} of a {link Geometry}. Operates on Geometry subclasses which contains a single coordinate list.
- trait GeometryEditorOperation extends AnyRef
A interface which specifies an edit operation for Geometries.
A interface which specifies an edit operation for Geometries.
- Version
1.7
- class NoOpGeometryOperation extends GeometryEditorOperation
A GeometryEditorOperation which does not modify the input geometry.
A GeometryEditorOperation which does not modify the input geometry. This can be used for simple changes of GeometryFactory (including PrecisionModel and SRID).
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()