Leafletjs dragg市场只有一个轴

时间:2015-08-04 01:37:20

标签: javascript leaflet

如何保护拖动的标记位置纬度并仅启用拖动标记的经度轴?

1 个答案:

答案 0 :(得分:3)

您可以使用dragstartdrag事件来处理此问题。您开始拖动时保存标记位置,然后在发出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