使用自定义控件在传单地图上绘制不同的对象
Drawing different objects on leaflet map with custom controls
我想用 leaflet-geoman 在传单地图上绘制不同类型的对象。我在叠加窗格上有一个不可编辑的 geojson 层(agricol 包裹),我想在组合框(或按钮 nethermind)中选择要绘制的对象类型。
它可以是具有不同样式(颜色、标记、工具提示...)的标记(例如树木)或折线(树篱...)或多边形(森林...):森林是绿色的,树有一些图标,树篱是棕色的,森林是绿色的……
在绘图结束后,我想显示一个弹出窗口来填充一些信息,例如对象的名称。
我想将所有这些绘图放在一个图层中,该图层可以 shown/hide 与窗格控件一起使用。
我可以根据对象的类型有不同的层。
至少,我想获取所有绘制的对象(带有额外信息......)并将其保存在 geojson 中。
你有做这种事的例子吗?我仍然没有找到任何东西。
谢谢
古恩
您可以创建不同的绘制形状以赋予它们不同的颜色:customcontrols.js:
map.pm.Toolbar.copyDrawControl('Rectangle', {
name: 'RectangleCopy',
block: 'custom',
title: 'Display text on hover button',
actions: _actions,
});
map.pm.Draw.RectangleCopy.setPathOptions({ color: 'green' });
然后检查 pm:create
侦听器创建了哪个形状,然后向其添加弹出窗口:
map.on('pm:create',(e)=>{
if(e.shape === 'RectangleCopy'){
e.layer.bindPopup('Treee').openPopup();
}
});
要将图层添加到要素组,您可以使用 map.pm.setGlobalOptions({layerGroup: YOUR_GROUP});
要获取所有绘制的图层,您可以调用 map.pm.getGeomanDrawLayers(true).toGeoJSON()
或者因为您有自己的组:YOUR_GROUP.toGeoJSON()
我想用 leaflet-geoman 在传单地图上绘制不同类型的对象。我在叠加窗格上有一个不可编辑的 geojson 层(agricol 包裹),我想在组合框(或按钮 nethermind)中选择要绘制的对象类型。 它可以是具有不同样式(颜色、标记、工具提示...)的标记(例如树木)或折线(树篱...)或多边形(森林...):森林是绿色的,树有一些图标,树篱是棕色的,森林是绿色的…… 在绘图结束后,我想显示一个弹出窗口来填充一些信息,例如对象的名称。 我想将所有这些绘图放在一个图层中,该图层可以 shown/hide 与窗格控件一起使用。 我可以根据对象的类型有不同的层。 至少,我想获取所有绘制的对象(带有额外信息......)并将其保存在 geojson 中。 你有做这种事的例子吗?我仍然没有找到任何东西。 谢谢
古恩
您可以创建不同的绘制形状以赋予它们不同的颜色:customcontrols.js:
map.pm.Toolbar.copyDrawControl('Rectangle', {
name: 'RectangleCopy',
block: 'custom',
title: 'Display text on hover button',
actions: _actions,
});
map.pm.Draw.RectangleCopy.setPathOptions({ color: 'green' });
然后检查 pm:create
侦听器创建了哪个形状,然后向其添加弹出窗口:
map.on('pm:create',(e)=>{
if(e.shape === 'RectangleCopy'){
e.layer.bindPopup('Treee').openPopup();
}
});
要将图层添加到要素组,您可以使用 map.pm.setGlobalOptions({layerGroup: YOUR_GROUP});
要获取所有绘制的图层,您可以调用 map.pm.getGeomanDrawLayers(true).toGeoJSON()
或者因为您有自己的组:YOUR_GROUP.toGeoJSON()