「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 件のコメント:
コメントを投稿