如何保护拖动的标记位置纬度并仅启用拖动标记的经度轴?
答案 0 :(得分:3)
您可以使用dragstart
和drag
事件来处理此问题。您开始拖动时保存标记位置,然后在发出drag
事件时始终重置纬度。
//Marker position before dragging
var latLngBeforeDrag;
//On drag start
function onDragStart(e){
var marker = e.target;
latLngBeforeDrag = marker.getLatLng();
}
//On drag
function onDrag(e){
var marker = e.target;
marker.setLatLng(L.latLng(latLngBeforeDrag.lat, marker.getLatLng().lng));
}
//Create new marker
var marker = L.marker([36.83711,-2.464459], {draggable:true});
marker.on('dragstart', onDragStart);
marker.on('drag', onDrag);
//Add marker to map
marker.addTo(map);
例如:jsfiddle