com.vividsolutions.jts.geom.util

Class GeometryEditor


public class GeometryEditor
extends java.lang.Object

Supports creating a new Geometry which is a modification of an existing one. Geometry objects are intended to be treated as immutable. This class allows you to "modify" a Geometry by traversing it and creating a new Geometry with the same overall structure but possibly modified components. The following kinds of modifications can be made: Note that all changes must be consistent with the original Geometry's structure (e.g. a Polygon cannot be collapsed into a LineString).

The resulting Geometry is not checked for validity. If validity needs to be enforced, the new Geometry's #isValid should be checked.

Version:
1.7
See Also:
Geometry.isValid()

Nested Class Summary

static class
GeometryEditor.CoordinateOperation
A GeometryEditor.GeometryEditorOperation which modifies the coordinate list of a Geometry.
static interface
GeometryEditor.GeometryEditorOperation
A interface which specifies an edit operation for Geometries.

Constructor Summary

GeometryEditor()
Creates a new GeometryEditor object which will create an edited Geometry with the same GeometryFactory as the input Geometry.
GeometryEditor(GeometryFactory factory)
Creates a new GeometryEditor object which will create the edited Geometry with the given GeometryFactory

Method Summary

Geometry
edit(Geometry geometry, GeometryEditor.GeometryEditorOperation operation)
Edit the input Geometry with the given edit operation.

Constructor Details

GeometryEditor

public GeometryEditor()

GeometryEditor

public GeometryEditor(GeometryFactory factory)
Creates a new GeometryEditor object which will create the edited Geometry with the given GeometryFactory
Parameters:
factory - the GeometryFactory to create the edited Geometry with

Method Details

edit

public Geometry edit(Geometry geometry,
                     GeometryEditor.GeometryEditorOperation operation)
Edit the input Geometry with the given edit operation. Clients will create subclasses of GeometryEditor.GeometryEditorOperation or GeometryEditor.CoordinateOperation to perform required modifications.
Parameters:
geometry - the Geometry to edit
operation - the edit operation to carry out
Returns:
a new Geometry which is the result of the editing