【发布时间】:2019-07-11 09:05:30
【问题描述】:
我的 Leaflet 项目允许用户绘制形状(线条、矩形和多边形)。用户可以单击形状以获取其统计信息(面积、周长等)。
我在我的 FeatureGroup() 上尝试了一个单击事件,其中添加了我绘制的所有形状。我不确定这是否是最好的方法。然后在单击时,调用一个接受事件的函数。层类型是从事件对象中推断出来的。
//Handlers for when drawn shapes are clicked
editableLayers.on('click', onLayerClick);
function onLayerClick(e)
{
let type = e.layerType,
layer = e.layer;
if (type === 'polygon') {
polygons.push(e.layer);
let area = L.GeometryUtil.geodesicArea(layer.getLatLngs()[0]);
console.log("New polygon area: " + area);
}
if (type === 'rectangle') {
rectangles.push(e.layer);
let area = L.GeometryUtil.geodesicArea(layer.getLatLngs()[0]);
console.log("New rectangle area: " + area);
}
}
type 对象返回一个未定义的,layer 对象返回一堆不引用形状类型的参数。因此,我无法推断形状类型并执行正确的计算来获取它们的统计数据。
【问题讨论】:
-
不是完全重复,但包含有用的信息...stackoverflow.com/questions/18014907/…
标签: javascript leaflet leaflet.draw