创建新的多边形时,在“ PM:DRAWSTART”上初始化事件“ pm:vertexadded”
它可以让我检测是否:
如果最后一行创建了“纽结”(也包括TurfJS),我将其删除。
我使用:“ map.pm.Draw [”多边形“] ._ removeLastVertex();”删除最后一点。
我的问题。
当多边形关闭时(最后一点单击第一个),将执行“ PM:DRAWEND”事件。 因此,在这种情况下,我无法像事件“ pm:vertexadded”那样检查新多边形是否与现有多边形重叠。
如果新多边形与现有多边形重叠,则在事件“ PM:CREATE”上是否可以进入编辑模式 (polygon.toggleEdit()),然后返回舞台,因为我没有单击最后一点来关闭多边形。
非常感谢。
答案 0 :(得分:2)
您可以使用现有的latlng重新初始化绘图多边形:
map.on('pm:create',function (e) {
e.layer.removeFrom(map);
setTimeout(function (){ //Needed because snapping
map.pm.enableDraw('Polygon');
var latlngs = e.layer.getLatLngs();
if(!L.LineUtil.isFlat(latlngs)){
latlngs = latlngs[0];
}
latlngs.forEach(function (latlng) {
map.pm.Draw.Polygon._createVertex({latlng: latlng})
})
},100);
})