2012-06-30 119 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