传单设置矩形从鼠标事件协调
leaflet set rectangle coordinated from mouse events
我试图允许用户能够设置矩形的一个角以在鼠标按下事件上绘制,当鼠标向上事件触发时,我想设置相反的角坐标并绘制矩形。我已经在我的*中尝试了以下内容。ASPX javascript:
var oneCorner;
var TwoCroner;
map.on('mousedown', setOneCorner);
map.on('mouseup', setTwoCorner);
function setOneCorner(e)
{
oneCorner = e.latlng;
}
function setTwoCorner(e)
{
twoCorner = e.latlng;
var bounds = [oneCorner.latlng, twoCorner.latlng];
L.rectangle(bounds, {color:"#ff7800", weight:1}).addTo(map);
}
我的磁贴仍然可以在鼠标按下事件上平移,但我希望能够在我想要的任何位置绘制一个矩形。 我应该怎么回合这样做?
如果您不希望地图平移,则可以添加 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();
}
相关文章:
- JsFiddle上的鼠标事件不起作用
- node-webkit-从父窗口捕获iframe鼠标事件
- 鼠标事件在OpenLaszlo应用程序中不起作用
- 为画布绘图添加鼠标事件
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- KineticJS鼠标事件问题
- GWT-允许鼠标事件在两个叠加画布之间传播
- 为什么不是't html<对象>元素响应鼠标事件
- 如何恢复Kinetic.js鼠标事件
- 鼠标事件's在CtrlKey不起作用的情况下单击
- 鼠标事件,我的代码出了什么问题
- 撤消javascript中的所有鼠标事件处理程序
- JQuery facebook订阅插件鼠标事件
- Javascript/jQuery-鼠标事件没有在html上触发,添加了动态
- React模板鼠标事件在容器's鼠标事件
- 使用两个重叠的画布,我可以将鼠标事件传递到底部的画布吗
- 谷歌地图 api v3 搜索多边形没有鼠标事件
- CSS 溢出边界半径鼠标事件
- 将触摸事件转换为鼠标事件仅每秒有效一次
- D3.js鼠标事件不起作用