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