如何在绘制第二个多边形后删除多边形

时间:2018-03-17 14:15:44

标签: javascript openlayers openlayers-3

我找到了一个绘制多边形的函数,但是在绘制第二个多边形时我需要它,它总是会删除前一个多边形,因为我的地图上必须始终有一个多边形

<!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/

Link to JS code

1 个答案:

答案 0 :(得分:1)

  1. 在绘制互动时使用drawstart事件。
  2. clear时使用drawstart作为来源。
  3. 您可以通过source的{​​{1}}访问地图上的功能 将您的示例放在小提琴上,您的功能包含在变量layer中。而且,当您看到代码一段时间后,vector互动活动就会发生drawend事件,您也可以猜到draw事件。

    drawstart

    当您开始绘图时,您想要的是没有功能显示,因此您可以在// just like `drawend` draw.on('drawstart', function(e) { });

    时清除源上的所有功能
    drawstart

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