diff --git a/lib/OpenLayers/Control/Split.js b/lib/OpenLayers/Control/Split.js index eec6dcc965..bf5d1f3111 100644 --- a/lib/OpenLayers/Control/Split.js +++ b/lib/OpenLayers/Control/Split.js @@ -277,8 +277,7 @@ OpenLayers.Control.Split = OpenLayers.Class(OpenLayers.Control, { afterFeatureModified: function(event) { if(event.modified) { var feature = event.feature; - if(feature.geometry instanceof OpenLayers.Geometry.LineString || - feature.geometry instanceof OpenLayers.Geometry.MultiLineString) { + if (typeof feature.geometry.split === "function") { this.feature = event.feature; this.considerSplit(event.feature); } @@ -313,17 +312,20 @@ OpenLayers.Control.Split = OpenLayers.Class(OpenLayers.Control, { * {Boolean} The target is eligible for splitting. */ isEligible: function(target) { - return ( - target.state !== OpenLayers.State.DELETE - ) && ( - target.geometry instanceof OpenLayers.Geometry.LineString || - target.geometry instanceof OpenLayers.Geometry.MultiLineString - ) && ( - this.feature !== target - ) && ( - !this.targetFilter || - this.targetFilter.evaluate(target.attributes) - ); + if (!target.geometry) { + return false; + } else { + return ( + target.state !== OpenLayers.State.DELETE + ) && ( + typeof target.geometry.split === "function" + ) && ( + this.feature !== target + ) && ( + !this.targetFilter || + this.targetFilter.evaluate(target.attributes) + ); + } }, /**