我正在添加两个Leaflet Draw(
https://github.com/Leaflet/Leaflet.draw)实例(仅使用行):
var drawControl = new L.Control.Draw({
draw: {
polygon: false,
rectangle: false,
circle: false,
marker: false
}
});
map.addControl(drawControl);
var drawControl2 = new L.Control.Draw({
draw: {
polygon: false,
rectangle: false,
circle: false,
marker: false
}
});
map.addControl(drawControl2);
现在我想听画:drawvertex事件并根据我是否激活了drawControl或drawControl2来做不同的事情:
map.on('draw:drawvertex', function (e) {
console.log("Vertex drawn", e);
});
如何区分哪个drawControl当前处于活动状态?
最佳答案 这是一种了解哪个drawControl处于活动状态的脏方法.
诀窍是将它们放在不同的地图角落.它有助于检查用户绘制时哪些ul.leaflet-draw-actions可见. div.leaflet-top中的那个或div.leaflet-bottom中的那个例如:
var drawControl = new L.Control.Draw({
position: 'topleft',
draw: {
polygon: false,
rectangle: false,
circle: false,
marker: false
}
});
map.addControl(drawControl);
var drawControl2 = new L.Control.Draw({
position: 'bottomleft',
draw: {
polygon: false,
rectangle: false,
circle: false,
marker: false
}
});
map.addControl(drawControl2);
map.on('draw:drawvertex', function (e) {
console.log("Vertex drawn", e);
if ($('div.leaflet-top ul.leaflet-draw-actions').is(':visible')){
console.log('it was drawn with drawControl');
}
else {
console.log('it was drawn with drawControl2 !');
}
});
它很脏但是有效.