2012-06-30 76 views
8

要求:使用Leaflet js地图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); 

回答

15

我自己想通了。

这是溶液:

window.map.removeLayer(window.polygon); 
+0

也与L.rectangle一起使用。 –

1

即工作,以及,以单张1.2.0测试。

window.polygon.remove()

+0

正是我所需要的,在我的更新循环中。我在每个循环中添加了另一个。现在我删除之前做一个新的。 – radbyx