Acts as a split feature agent while editing vector features.
ALKMaps. | Acts as a split feature agent while editing vector features. |
Properties | |
events | {ALKMaps.Events} Events instance for listeners and triggering control specific events. |
layer | {ALKMaps.Layer.Vector} The target layer with features to be split. |
source | {ALKMaps.Layer.Vector} Optional source layer. |
sourceOptions | {Options} If a temporary sketch layer is created, these layer options will be applied. |
tolerance | {Number} Distance between the calculated intersection and a vertex on the source geometry below which the existing vertex will be used for the split. |
edge | {Boolean} Allow splits given intersection of edges only. |
deferDelete | {Boolean} Instead of removing features from the layer, set feature states of split features to DELETE. |
mutual | {Boolean} If source and target layers are the same, split source features and target features where they intersect. |
targetFilter | {ALKMaps.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting. |
sourceFilter | {ALKMaps.Filter} Optional filter that will be evaluated to determine if a feature from the source layer is eligible for splitting. |
handler | {ALKMaps.Handler.Path} The temporary sketch handler created if no source layer is provided. |
Constructor | |
ALKMaps. | Creates a new split control. |
Functions | |
setSource | Set the source layer for edits layer. |
activate | Activate the control. |
deactivate | Deactivate the control. |
onSketchComplete | Registered as a listener for the sketchcomplete event on the editable layer. |
afterFeatureModified | Registered as a listener for the afterfeaturemodified event on the editable layer. |
removeByGeometry | Remove a feature from a list based on the given geometry. |
isEligible | Test if a target feature is eligible for splitting. |
considerSplit | Decide whether or not to split target features with the supplied feature. |
geomsToFeatures | Create new features given a template feature and a list of geometries. |
destroy | Clean up the control. |
{ALKMaps.Events} Events instance for listeners and triggering control specific events.
control.events.register(type, obj, listener);
beforesplit | Triggered before a split occurs. Listeners receive an event object with source and target properties. |
split | Triggered when a split occurs. Listeners receive an event with an original property and a features property. The original is a reference to the target feature that the sketch or modified feature intersects. The features property is a list of all features that result from this single split. This event is triggered before the resulting features are added to the layer (while the layer still has a reference to the original). |
aftersplit | Triggered after all splits resulting from a single sketch or feature modification have occurred. The original features have been destroyed and features that result from the split have already been added to the layer. Listeners receive an event with a source and features property. The source references the sketch or modified feature used as a splitter. The features property is a list of all resulting features. |
{ALKMaps.Layer.Vector} The target layer with features to be split. Set at construction or after construction with <setLayer>.
{ALKMaps.Layer.Vector} Optional source layer. Any newly created or modified features from this layer will be used to split features on the target layer. If not provided, a temporary sketch layer will be created.
{Boolean} Allow splits given intersection of edges only. Default is true. If false, a vertex on the source must be within the tolerance distance of the calculated intersection for a split to occur.
{ALKMaps.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting.
{ALKMaps.Filter} Optional filter that will be evaluated to determine if a feature from the source layer is eligible for splitting.
{ALKMaps.Handler.Path} The temporary sketch handler created if no source layer is provided.
Creates a new split control. A control is constructed with a target layer and an optional source layer. While the control is active, creating new features or modifying existing features on the source layer will result in splitting any eligible features on the target layer. If no source layer is provided, a temporary sketch layer will be created to create lines for splitting features on the target.
options | {Object} An object containing all configuration properties for the control. |
layer | {ALKMaps.Layer.Vector} The target layer. Features from this layer will be split by new or modified features on the source layer or temporary sketch layer. |
source | {ALKMaps.Layer.Vector} Optional source layer. If provided newly created features or modified features will be used to split features on the target layer. If not provided, a temporary sketch layer will be created for drawing lines. |
tolerance | {Number} Optional value for the distance between a source vertex and the calculated intersection below which the split will occur at the vertex. |
edge | {Boolean} Allow splits given intersection of edges only. Default is true. If false, a vertex on the source must be within the tolerance distance of the calculated intersection for a split to occur. |
mutual | {Boolean} If source and target are the same, split source features and target features where they intersect. Default is true. If false, only target features will be split. |
targetFilter | {ALKMaps.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting. |
sourceFilter | {ALKMaps.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting. |
setSource: function( layer )
Set the source layer for edits layer.
layer | {ALKMaps.Layer.Vector} The new source layer layer. If null, a temporary sketch layer will be created. |
removeByGeometry: function( features, geometry )
Remove a feature from a list based on the given geometry.
features | {Array(ALKMaps.Feature.Vector)} A list of features. |
geometry | {ALKMaps.Geometry} A geometry. |
isEligible: function( target )
Test if a target feature is eligible for splitting.
target | {ALKMaps.Feature.Vector} The target feature. |
{Boolean} The target is eligible for splitting.
considerSplit: function( feature )
Decide whether or not to split target features with the supplied feature. If mutual is true, both the source and target features will be split if eligible.
feature | {ALKMaps.Feature.Vector} The newly created or modified feature. |
{Boolean} The supplied feature was split (and destroyed).
geomsToFeatures: function( feature, geoms )
Create new features given a template feature and a list of geometries. The list of geometries is modified in place. The result will be a list of new features.
feature | {ALKMaps.Feature.Vector} The feature to be cloned. |
geoms | {Array(ALKMaps.Geometry)} List of goemetries. This will become a list of new features. |
Set the source layer for edits layer.
setSource: function( layer )
Activate the control.
activate: function()
Deactivate the control.
deactivate: function()
Registered as a listener for the sketchcomplete event on the editable layer.
onSketchComplete: function( event )
Registered as a listener for the afterfeaturemodified event on the editable layer.
afterFeatureModified: function( event )
Remove a feature from a list based on the given geometry.
removeByGeometry: function( features, geometry )
Test if a target feature is eligible for splitting.
isEligible: function( target )
Decide whether or not to split target features with the supplied feature.
considerSplit: function( feature )
Create new features given a template feature and a list of geometries.
geomsToFeatures: function( feature, geoms )
Clean up the control.
destroy: function()