[英]Remove all points from polygon one by one
我正在創建一種在繪制時從openlayers多邊形中刪除點的功能。 所以有我的“配置”:
source = new ol.source.Vector({
wrapX: false,
});
raster = new ol.layer.Tile({
source: new ol.source.OSM()
});
vector = new ol.layer.Vector({
source: source,
style: new ol.style.Style(/* some config */)
});
view = new ol.View({
center: defaultLonLatFormat,
zoom: 12
});
mapx = new ol.Map({
layers: [raster, vector],
target: 'target',
view: view
});
用於開始繪制的代碼:
draw = new ol.interaction.Draw({
source: source,
type: 'Polygon',
});
mapx.addInteraction(draw);
用於刪除最后一點的代碼:
draw.removeLastPoint();
draw.changed();
直到多邊形打開為止,一切都像吊飾一樣工作-直到我將最后一點與第一個點連接起來。 在那之后,刪除最后一點毫無意義。 我可以用alt + click
刪除點-它可以工作直到剩下3個點,從而使最小的閉合多邊形-三角形。 然后,即使alt + click
組合也不起作用。 我什至在OpenLayers示例中嘗試過此操作-同樣的行為。 所以我有三個問題:
關閉多邊形后會發生什么,所以我無法使用draw.removeLastPoint()
刪除點?
為什么我無法從多邊形中刪除最后三個點?
任何想法如何實現這種功能?
繪制完成后, 將草圖添加到目標圖層 ,並將其從繪制交互中刪除,因此,如果要訪問它,則需要調用
source.getFeatures();
任何繪圖交互功能都不再對其起作用。
定義多邊形的線性環的數組。 數組的第一個線性環定義了多邊形的外邊界或表面。 每個隨后的線性環在多邊形表面上定義了一個孔。 線性環是頂點坐標的數組,其中第一個坐標和最后一個坐標相等。
從技術上講,當外邊界不是線性環時,它不是有效的多邊形。 當坐標少於三個時,則更多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.