Javascript 传单-可拖动标记和坐标以字段形式显示

Javascript 传单-可拖动标记和坐标以字段形式显示,javascript,leaflet,Javascript,Leaflet,我必须做一个可拖动的标记,它的坐标应该显示在字段中。它将是PHP中联系人表单的一部分。我创建了一个可拖动的标记,请帮助我现在做什么 var marker = L.marker(new L.LatLng(53.471, 18.744), { draggable: true }).addTo(map); 这是Google Maps API中的示例,我需要在传单中使用相同的示例。您应该使用L.Marker的dragend事件,因此您知道拖动已结束,然后使用L.Marker的getLatLng方法获

我必须做一个可拖动的标记,它的坐标应该显示在字段中。它将是PHP中联系人表单的一部分。我创建了一个可拖动的标记,请帮助我现在做什么

var marker = L.marker(new L.LatLng(53.471, 18.744), {
draggable: true
}).addTo(map);


这是Google Maps API中的示例,我需要在传单中使用相同的示例。

您应该使用L.Marker的dragend事件,因此您知道拖动已结束,然后使用L.Marker的getLatLng方法获取标记的坐标。获取这些内容后,可以将它们指定给文本输入的值

marker.on('dragend', function (e) {
    document.getElementById('latitude').value = marker.getLatLng().lat;
    document.getElementById('longitude').value = marker.getLatLng().lng;
});

Plunker上的工作示例:

在寻找类似解决方案时遇到了这个问题。把有记号的答案叉出来,再往前走一点:

  • 拖动和单击;地图以标记为中心
  • 也可以反向工作(表单字段中用户输入的值可以移动 标记)
  • 记住用户标记的上一个位置
操作代码:

marker.on('dragend', function (e) {
    updateLatLng(marker.getLatLng().lat, marker.getLatLng().lng);
    });
map.on('click', function (e) {
marker.setLatLng(e.latlng);
updateLatLng(marker.getLatLng().lat, marker.getLatLng().lng);
});

function updateLatLng(lat,lng,reverse) {
if(reverse) {
marker.setLatLng([lat,lng]);
map.panTo([lat,lng]);
} else {
document.getElementById('latitude').value = marker.getLatLng().lat;
document.getElementById('longitude').value = marker.getLatLng().lng;
map.panTo([lat,lng]);
}
}

请参阅工作示例:

谢谢,这是我的理想选择!