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

You may also like...