Proper handling of virtual vertices so we don't leave them on the layer. r=crschmidt (closes #1230)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5623 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -385,8 +385,10 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
// dragging a virtual vertex
|
||||
vertex.geometry.parent.addComponent(vertex.geometry,
|
||||
vertex._index);
|
||||
// move from virtual to real vertex
|
||||
delete vertex._index;
|
||||
OpenLayers.Util.removeItem(this.virtualVertices, vertex);
|
||||
this.vertices.push(vertex);
|
||||
} else if(vertex == this.dragHandle) {
|
||||
// dragging a drag handle
|
||||
this.layer.removeFeatures(this.vertices);
|
||||
@@ -398,8 +400,10 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
}
|
||||
// dragging a radius handle - no special treatment
|
||||
// dragging a real vertex - no special treatment
|
||||
this.layer.destroyFeatures(this.virtualVertices);
|
||||
this.virtualVertices = [];
|
||||
if(this.virtualVertices.length > 0) {
|
||||
this.layer.destroyFeatures(this.virtualVertices);
|
||||
this.virtualVertices = [];
|
||||
}
|
||||
this.layer.drawFeature(this.feature, this.selectControl.selectStyle);
|
||||
}
|
||||
// keep the vertex on top so it gets the mouseout after dragging
|
||||
@@ -499,7 +503,11 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
vertex = new OpenLayers.Feature.Vector(geometry);
|
||||
control.vertices.push(vertex);
|
||||
} else {
|
||||
for(i=0; i<geometry.components.length; ++i) {
|
||||
var numVert = geometry.components.length;
|
||||
if(geometry.CLASS_NAME == "OpenLayers.Geometry.LinearRing") {
|
||||
numVert -= 1;
|
||||
}
|
||||
for(i=0; i<numVert; ++i) {
|
||||
component = geometry.components[i];
|
||||
if(component.CLASS_NAME == "OpenLayers.Geometry.Point") {
|
||||
vertex = new OpenLayers.Feature.Vector(component);
|
||||
|
||||
Reference in New Issue
Block a user