我在我的應用程序中使用OpenLayers3開始,並在創建工作版本,到目前爲止,我已經成功了:OpenLayers3 - 是否可以結合修改/繪製/選擇操作?
- 組合平局/修改頁(基於相關的例子,
draw-and-modify-features.js
) - 一合併的選擇/修改頁(基於相關的例子,
modify-features.js
)
在(1)中,ol.interaction.Modify
實例指定它將上的特徵工作的ol.FeatureOverlay
實例內的情況下:
var modify = new ol.interaction.Modify({
features: featureOverlay.getFeatures()
...
...並且它是ol.FeatureOverlay
,其中包含用戶繪製的所有新功能。
在的情況下,(2),該ol.interaction.Modify
實例指定它將在功能工作ol.interaction.Select
實例內:
var select = new ol.interaction.Select();
var modify = new ol.interaction.Modify({
features: select.getFeatures()
});
...除非我弄錯了,這將創建一個隱藏的ol.FeatureOverlay
這保存當前選擇的功能 - 然後進行編輯。
但是,我看不到一種方法來組合所有3 - 即用戶友好的方式來允許用戶繪製,選擇和修改多邊形。
我想(理想情況下)需要的是繪製/修改的功能,但是當我點擊並保持Ctrl按下時,光標不再在「繪製」模式下工作,而是在「選擇」模式下,允許我選擇其中一個現有的多邊形,然後在鍵盤上點擊Delete刪除它,或者只需用鼠標編輯它的頂點。只要在所有多邊形之外單擊,我就會返回到繪製/修改模式。
我做了一個天真的測試 - 將ol.interaction.Select
添加到繪圖/修改Map實例的交互中 - 這導致了令人捧腹的結果:-)例如,在完成繪製多邊形時(即,點擊關閉它)它也被選中......並且點擊任何地方(多邊形內部或外部)只是開始另一個新的多邊形邊緣,它從不選擇預先存在的一個邊緣等。
我只想到一個解決方案遠遠是......爲了實現「VI仿真」:-)即「命令」模式(即選擇/修改狀態)和「插入」模式(即繪製/修改狀態) - 和你從地圖(自定義OL3控件)或地圖(常規HTML按鈕)內部的「狀態切換」按鈕中選擇您所處的模式。
我,但是,找一個更好的辦法,像我跟按住Ctrl建議...
任何意見/建議,深受歡迎。
這有幫助嗎? http://openlayers.org/en/v3.0.0/examples/draw-and-modify-features.html?q=modify你必須使用修飾鍵,但我設法繪製,刪除和修改多邊形(閱讀後來源,它必須說:-)) – 2014-09-26 10:34:09
@JohnBarça:謝謝約翰,但你只是重複我在我自己的問題(modify.js)中有同樣的參考,沒有告訴我你是如何管理所有3(繪製,選擇,修改):-)小心分享你的解決方案? – ttsiodras 2014-09-29 07:05:09
對不起,我沒有看到你的問題中的鏈接,我沒有解決方案。那個不適合你的例子是什麼? – 2014-09-29 07:08:34