如果您不希望您的地图平移,那么您可以添加
map.dragging.disable()
到您的代码中。此外,您的带边界数组应该是var bounds = [oneCorner, twoCorner];
因为角变量已经是 LatLng 对象。
完整的代码是:
var oneCorner;
var TwoCroner;
map.on('mousedown', setOneCorner);
map.on('mouseup', setTwoCorner);
map.dragging.disable();
function setOneCorner(e)
{
oneCorner = e.latlng;
}
function setTwoCorner(e)
{
twoCorner = e.latlng;
var bounds = [oneCorner, twoCorner];
L.rectangle(bounds, {color:"#ff7800", weight:1}).addTo(map);
}
但我不认为防止地图平移是个好主意。用 Ctrl 怎么用,也可以用这个插件画图:https ://github.com/Leaflet/Leaflet.draw
// 编辑:
仅按 Ctrl 的版本。:
var oneCorner;
var TwoCroner;
map.on('mousedown', setOneCorner);
map.on('mouseup', setTwoCorner);
function setOneCorner(e)
{
if (e.originalEvent.ctrlKey) {
map.dragging.disable();
oneCorner = e.latlng;
}
}
function setTwoCorner(e)
{
if (e.originalEvent.ctrlKey) {
twoCorner = e.latlng;
var bounds = [oneCorner, twoCorner];
L.rectangle(bounds, {color:"#ff7800", weight:1}).addTo(map);
}
map.dragging.enable();
}