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

Con*_*ick -1 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";
});
Run Code Online (Sandbox Code Playgroud)

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

marker.on('mouseup', function(e){
Run Code Online (Sandbox Code Playgroud)

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

第二个问题

    location = marker.getLatLng();
Run Code Online (Sandbox Code Playgroud)

不存储lat/lon的位置,而只是打开我尚未配置的新URL.

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

谢谢!

tri*_*ten 5

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

marker.on('dragend', function(e){
    console.log(e.target._latlng);
});
Run Code Online (Sandbox Code Playgroud)

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

  • 您应该使用`.getLatLng()`来代替公共的文档化方法. (6认同)