「geometricnet」の「OpenLayers Undo Redo Vector Edit Example(http://geometricnet.sourceforge.net/examples/undo-redo.html)」を参考に マウスで削除してみます。
(このサイトを参考に UndoRedo を試してみましたが、動作しませんでした。)
「ol014-nippon_bmi_akiruno_pgis.html」 ファイルを続けて使います。
a 上記サイトを右クリックしてソースを表示します。
b 次のように内容の一部をコピーして「ol014-nippon_bmi_akiruno_pgis.html」に貼り付け、修正します。
---
modify: new OpenLayers.Control.ModifyFeature(vectors), "delete": new DeleteFeature(vectors) // 追加 };---
DeleteFeature = OpenLayers.Class(OpenLayers.Control, {
initialize: function(layer, options) {
OpenLayers.Control.prototype.initialize.apply(this, [options]);
this.layer = layer;
this.handler = new OpenLayers.Handler.Feature(
this, layer, {click: this.clickFeature}
);
},
clickFeature: function(feature) {
// if feature doesn't have a fid, destroy it
if(feature.fid == undefined) {
this.layer.destroyFeatures([feature]);
} else {
this.layer.drawFeature(feature,{display: "none"});
this.layer.removeFeatures(feature);
//feature.state = OpenLayers.State.DELETE;
this.layer.events.triggerEvent("afterfeaturemodified", {feature: feature});
//feature.renderIntent = "select";
}
},
setMap: function(map) {
this.handler.setMap(map);
OpenLayers.Control.prototype.setMap.apply(this, arguments);
},
CLASS_NAME: "OpenLayers.Control.DeleteFeature"
});
// ここまで
</script> </head> <body onload="init()">---
<!-- ここから追加 --> <li> <input id="deleteToggle" type="radio" name="type" value="delete" onlick="toggleControl(this);" /> <label for="polygonToggle">delete feature</label> </li> <!-- ここまで -->
</ul> </div> <body> </html>
クリックしたフィーチャが削除されます。335a-olaki.png
335b-olaki.png


0 件のコメント:
コメントを投稿