10

要求:使用Leaflet js maps api,当客户点击标记时,应该在标记的正下方绘制一个矩形,根据标记居中。然后单击另一个标记应删除以前的矩形并在新单击的标记下方绘制另一个矩形。

问题:我正在使用下面的代码来绘制一个多边形,我可以看到一个矩形。它在标记上绘制矩形。然后通过单击另一个标记,正在绘制一个新的矩形。但是旧的矩形也仍然存在。

问题:我应该如何实现该行为,以便在单击新标记时,旧矩形将从地图中删除?

 //polygon

var latBlockSize = 0.002;
var lngBlockSize = 0.002;
var route = [
      new L.LatLng(parseFloat(customer.MailingAddress.Lat) + latBlockSize, parseFloat(customer.MailingAddress.Lng) - lngBlockSize),
      new L.LatLng(parseFloat(customer.MailingAddress.Lat) + latBlockSize, parseFloat(customer.MailingAddress.Lng) + lngBlockSize),
      new L.LatLng(parseFloat(customer.MailingAddress.Lat) - latBlockSize, parseFloat(customer.MailingAddress.Lng) + lngBlockSize),
      new L.LatLng(parseFloat(customer.MailingAddress.Lat) - latBlockSize, parseFloat(customer.MailingAddress.Lng) - lngBlockSize)
   ];

window.polygon = new L.Polygon(route);

window.map.addLayer(window.polygon);
4

2 回答 2

22

我自己想通了。

这是解决方案:

window.map.removeLayer(window.polygon);
于 2012-07-03T05:59:54.630 回答
3

这也很有效,用 Leaflet 1.2.0 测试过。

window.polygon.remove()

于 2017-12-27T16:49:54.860 回答