Извинения, я новичок в javascript!
У меня есть 8 коллекций объектов в моем скрипте, которые создают 8 слоев многоугольников на моей веб-карте, представляющих распределение видов для 8 различных видов лягушек. Каждый из них соответствует кнопке (img каждой лягушки) на странице, и onclick загружает многоугольник, запускает всплывающее окно в центре и меняет setView на центр. Для этого мне понадобится многоугольный центроид.
Каждая из 8 коллекций объектов имеет координаты угловых точек многоугольника. Я хочу использовать эти координаты в преобразовании дерна, чтобы найти центроид (центральную точку) каждого многоугольника. Мне нужны центроиды, чтобы я мог установить центр карты так, чтобы, когда карта перемещалась на слой многоугольника, она центрировалась в центре многоугольника, и в этом центре появлялся всплывающий маркер.
I может введите координаты вручную из коллекции объектов каждого слоя в элемент turf.centroid (многоугольник), но каждый многоугольник имеет МНОЖЕСТВО точек и 8 многоугольников. Затем я также должен был бы скопировать результат операции в L.LatLng и L.Marker.
Мне нужен способ получить координаты углов из коллекции объектов в операцию дерновины, изатем помещая полученные координаты центроида в функции L.LatLng и L.Marker. Есть идеи?
Вот код для функции addFrog1Layer (), в которую я добавляю слой с полигоном и всплывающее окно на карту:
var polygon = turf.polygon([[[a, b], [c, d], [e, f], [g, h], [i, j], [k, l]]]);
var centroid = turf.centroid(polygon);
map.setView(new L.LatLng(x,y), 1);
Frog1Layer = L.geoJson(Frog1, {
style: {
weight: 0.5,
color: 'white',
fillOpacity: 1,
fillColor: 'red',
}
}).addTo(map);
var frogIcon = L.icon({
iconUrl: 'frogIcon.png',
iconSize: [30, 30],
iconAnchor: [30, 30],
popupAnchor: [-3, -76]
L.marker([x,y], {icon: frogIcon}).bindPopup("I am a pop-up").addTo(map);