2013-06-24 106 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