2013-06-24 107 views
-1

這裏是我的代碼如何在MapBox中查找標記的緯度/經度?

var map = L.mapbox.map('map', 'examples.map-20v6611k').setView([37.9, -77],4); 

var marker = L.marker(new L.LatLng(37.9, -77), { 
       icon: L.mapbox.marker.icon({'marker-color': 'CC0033'}), 
       draggable: true 
      }); 

marker.bindPopup('This marker is draggable! Move it around.'); 
marker.addTo(map); 

//my code 

marker.on('mousedown', function(e){ 
     location = marker.getLatLng(); 
     document.getElementById('locationBox').innerHTML = "poop"; 
}); 

在地圖上的標記可以在任何地方進行拖動。我試圖在標記被拖動到某處後使用標記的經度和緯度,這就是爲什麼我使用了標記。('mousedown',函數(e){ 事件處理函數。 我有兩個的問題。我試圖巢另一個事件處理程序

marker.on('mouseup', function(e){ 

裏面有這麼一次標誌就是讓被拖着走,但「鼠標鬆開」的方法不起作用的位置被抓住。

二問題

location = marker.getLatLng(); 

不在位置存儲緯度/經度,而只是打開一個我尚未配置的新URL。

如何使用Javascript或Jquery在標記被拖拽後丟棄位置,以及如何適當地將緯度/經度存儲在變量中?

謝謝!

回答

5

您可能需要使用dragend事件,因爲它在拖動標記後觸發。如果你窺探什麼e.target回報有一個_latlng對象,讓你的細節,你需要:

marker.on('dragend', function(e){ 
    console.log(e.target._latlng); 
}); 

在方法名稱中使用下劃線意味着其私人所以有可能是一個更合適的方式來訪問這一點,但現在應該適合你的需求。

+0

它的工作,謝謝! –

+4

您應該使用'.getLatLng()'代替公開的,記錄的方法。 – tmcw