Проект My Leaflet позволяет пользователям рисовать фигуры (линии, прямоугольники и многоугольники).Пользователь может нажимать на фигуры, чтобы получить их статистику (площадь, периметр и т. Д.).
Я попробовал событие click в моей 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);
}
}
Объект типа возвращает неопределенное значение, а объект слоя возвращает набор параметров, не ссылающихся на тип фигуры.Из-за этого я не могу определить тип фигуры и выполнить правильные вычисления, чтобы получить их статистику.