Leaflet 使用传单geoman限制多段线(成为一条线)中的标记点
我希望用户能够绘制一条线(这是一条只有2个点的多段线) 我启用绘图和侦听Leaflet 使用传单geoman限制多段线(成为一条线)中的标记点,leaflet,leaflet-draw,leaflet-geoman,Leaflet,Leaflet Draw,Leaflet Geoman,我希望用户能够绘制一条线(这是一条只有2个点的多段线) 我启用绘图和侦听vertexadded。当\u环标记计数等于2时,我禁用绘图 出于以下几个原因,这种感觉是错误的: 我访问一个私有变量\u rings 现在我禁用绘图,但要使线条可视化,我必须在可视化模式下重新初始化它 要允许用户移动线条的2个点,我必须在编辑模式下重新初始化线条 在编辑模式下,必须禁用在两个标记之间拆分一条线,这是否可行 我是否错过了一种更简单的方法 map.pm.enableDraw('Line', { snappa
vertexadded
。当\u环
标记计数等于2时,我禁用绘图
出于以下几个原因,这种感觉是错误的:
\u rings
map.pm.enableDraw('Line', {
snappable: true,
snapDistance: 20,
});
map.on('pm:drawstart', (event: any) => {
const { workingLayer } = event;
workingLayer.on('pm:vertexadded', (e: any) => {
if (workingLayer._rings[0].length >= 2) {
map.pm.disableDraw('Line', {
snappable: true,
snapDistance: 20,
});
}
});
});
layer.getLatLngs()
代替变量\u rings
map.pm.disableDraw()
,使用map.pm.Draw.Line.\u finishShape()
将绘制的图层添加到地图中来完成形状map.pm.enableGlobalEditMode()
为所有层启用编辑,也可以使用layer.pm.enable()
hideMiddleMarkers:true
map.pm.setGlobalOptions({hideMiddleMarkers: true})
map.on('pm:drawstart', (event) => {
const { workingLayer } = event;
workingLayer.on('pm:vertexadded', (e) => {
if (workingLayer.getLatLngs().length >= 2) {
map.pm.Draw.Line._finishShape()
}
});
});
map.pm.enableDraw('Line');