Class GeometryEditorEx


  • public class GeometryEditorEx
    extends java.lang.Object
    A class which supports creating new Geometrys which are modifications of existing ones, maintaining the same type structure. Geometry objects are intended to be treated as immutable. This class "modifies" Geometry instances by traversing them, applying a user-defined GeometryEditorEx.GeometryEditorOperation, GeometryEditorEx.CoordinateSequenceOperation or GeometryEditorEx.CoordinateOperation and creating new Geometry instances 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 modifed 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 GeometryTransformer.

    This class supports creating an edited Geometry using a different GeometryFactory via the 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 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()
    • Constructor Detail

      • GeometryEditorEx

        public GeometryEditorEx()
        Creates a new GeometryEditor object which will create edited Geometrys with the same GeometryFactory as the input Geometry.
      • GeometryEditorEx

        public GeometryEditorEx​(GeometryFactory targetFactory)
        Creates a new GeometryEditor object which will create edited Geometrys with the given GeometryFactory.
        Parameters:
        targetFactory - the GeometryFactory to create edited Geometries with
      • GeometryEditorEx

        public GeometryEditorEx​(GeometryEditorEx.GeometryEditorOperation operation)
        Creates a GeometryEditor which edits geometries using a given GeometryOperation and the same GeometryFactory as the input Geometry.
        Parameters:
        operation - the edit operation to use
      • GeometryEditorEx

        public GeometryEditorEx​(GeometryEditorEx.GeometryEditorOperation operation,
                                GeometryFactory targetFactory)
        Creates a GeometryEditor which edits geometries using a given GeometryOperation and the given GeometryFactory.
        Parameters:
        operation - the edit operation to use
        targetFactory - the GeometryFactory to create edited Geometrys with
    • Method Detail

      • setCopyUserData

        public void setCopyUserData​(boolean isUserDataCopied)
        Sets whether the User Data is copied to the edit result. Only the object reference is copied.
        Parameters:
        isUserDataCopied - true if the input user data should be copied.