这是我的代码
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适当地存储在变量中?
谢谢!
答案 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);