2013-09-24 63 views
0

我想用getLatLng提醒我的標記的所有位置。單張更新標記getLatLng

這工作也很好。

我把地圖上的標記這段代碼:

var marker = new L.Marker(e.latlng, { 
     draggable:true, 

     contextmenu: true, 
      contextmenuItems: [{ 
      text: 'Marker entfernen', 
       index: 0, 
       callback: remove 
      },{ 

       separator: true, 
       index: 1 
      }] 
     });  
    map.addLayer(marker); 

而且我這個代碼獲得位置:

$(".test").click(function() { 
alert(marker.getLatLng()); 
}); 

所有增加的標記位置將是警惕。

但是,如果我這段代碼移除標記:

map.removeLayer(marker); 

從刪除標記的位置仍然在alertbox所示!

回答

1

使用map.removeLayer(marker);將其刪除後,仍然存在的Javascript對象及其所有屬性。爲了快速修復,您可以在將圖層從圖層中刪除後簡單地添加marker = null;。您在呼叫警報之前也必須檢查爲空。

+0

嘿,謝謝你,這對我有一個標記。 但我在地圖上使用多個標記,因此所有標記位置都將設置爲空。 可以將標記狀態減少一個?像'marker = x-1;'? – rkesize

+0

如果您有多個標記,則必須分別跟蹤它們。例如:'var marker1 = ...,var marker2 = ...'等等,或者一組標記。否則,訪問'marker'的所有其他代碼都將引用最新的標記。例如'map.removeLayer(marker)'不會除去最後一個標記等以外的任何標記,等等。 – tyr

+0

Yea, 但標記不是默認標記。 我通過點擊地圖生成它們,我如何通過點擊地圖來製作數組?對於一個數組,我需要一個像'for(i = 0; i rkesize