OpenLayers删除矢量图形的Control
/**
* 功能:删除选中的Feature,以免添加错误的Feature或删除修改错误的Feature
* 使用:点击修改实体的button,使用键盘上的Dele键来删除
*/
//删除所添加的图形
OpenLayers.Control.DeleteFeature = OpenLayers.Class(OpenLayers.Control, {
initialize: function(layer, control, options){
OpenLayers.Control.prototype.initialize.apply(this, [options]);
this.layer = layer;
this.handler = new OpenLayers.Handler.Keyboard(this, {
“keydown”: this.deleteFeature
});
this.control = control;
this.activate();
},
deleteFeature: function(evt){
//键盘按键所对应的编码,dele键对应的是46
switch (evt.keyCode) {
case 46:
var fea = this.layer.selectedFeatures[0];
if (fea.fid == undefined) {
this.layer.destroyFeatures([fea]);
}
else {
fea.state = OpenLayers.State.DELETE;
this.layer.events.triggerEvent(“afterfeaturemodified”, {
feature: fea
});
fea.renderIntent = “select”;
}
this.control.deactivate();
this.control.activate();
}
},
destroy: function(){
if (this.handler) {
this.handler.destroy();
}
this.handler = null;
OpenLayers.Control.prototype.destroy.apply(this, arguments);
},
CLASS_NAME: “OpenLayers.Control.DeleteFeature”
});
转载自:https://blog.csdn.net/guanghua2009/article/details/6644314