簡體   English   中英

繪制第二個多邊形后如何刪除多邊形

[英]How to delete a polygon after drawing the second polygon

我找到了一個繪制多邊形的函數,但是在繪制第二個多邊形時需要用到它,因為它在我的地圖上總是有一個多邊形,所以它將始終刪除先前的多邊形

<!DOCTYPE html>
<html>
  <head>
    <title>Draw Features</title>
    <link rel="stylesheet" href="https://openlayers.org/en/v4.6.4/css/ol.css" type="text/css">
    <!-- The line below is only needed for old environments like Internet Explorer and Android 4.x -->
    <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></script>
    <script src="https://openlayers.org/en/v4.6.4/build/ol.js"></script>
  </head>
  <body>
<div id="map" class="map"></div>
<form class="form-inline">
  <label>Geometry type &nbsp;</label>
  <select id="type">
    <option value="Box">Box</option>
    <option value="None">None</option>
  </select>
</form>

其中包含所有html和javascript代碼http://jsfiddle.net/p_tsagkis/c4o4put8/

鏈接到JS代碼

  1. 在繪圖交互中使用drawstart事件。
  2. drawstart時使用clear作為源。

您可以通過layer source訪問地圖上的要素。
通過在小提琴上的示例,您的特征包含在變量vector 而且,正如您在一段時間內看到的代碼一樣,在draw交互中有一個drawend事件,讓您猜測也有drawstart事件。

// just like `drawend`
draw.on('drawstart', function(e) {

});

你想要的東西是沒有功能的顯示器,當你開始畫,所以你可以清除時,在源中的所有功能drawstart

// map.getLayers().getArray()[1] is your vector layer
draw.on('drawstart', function(e) {
  map.getLayers().getArray()[1].getSource().clear();
});

http://jsfiddle.net/c4o4put8/25/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM