如何在MapBox中找到标记的纬度/经度?

时间:2013-06-24 03:13:27

标签: javascript methods marker 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";
});

地图上的标记可以拖动到任何地方。我在标记被拖到某处后尝试取标记的经度和纬度,这就是为什么我要使用     marker.on('mousedown',function(e){ 事件处理程序 我有两个问题。我正在尝试嵌套另一个事件处理程序

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

在里面,所以一旦标记被拖走就抓住了位置但是'mouseup'方法不起作用。

第二个问题

    location = marker.getLatLng();

不会将lat / lon存储在位置,而只是打开一个我尚未配置的新URL。

如何在拖动然后删除标记后使用Javascript或Jquery来获取标记的位置,以及如何将lat / lon适当地存储在变量中?

谢谢!

2 个答案:

答案 0 :(得分:5)

您可能希望在拖动标记后触发dragend事件。如果您查看e.target返回的内容,则会有一个_latlng对象,为您提供所需的详细信息:

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

方法名称中使用的下划线表示它是私有的,因此可能有更合适的方式来访问它,但现在应该适合您的需要。

答案 1 :(得分:0)

您也可以这样做:

console.log(marker._lngLat.lat);
console.log(marker._lngLat.lng);