0

这是我的代码

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();

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

在拖放标记后,如何使用 Javascript 或 Jquery 来获取标记的位置,以及如何将纬度/经度适当地存储在变量中?

谢谢!

4

2 回答 2

5

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

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

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

于 2013-06-30T16:22:37.733 回答
2

你也可以这样做:

console.log(marker._lngLat.lat);
console.log(marker._lngLat.lng);
于 2019-10-03T05:03:34.237 回答