Есть ли способ найти центр для стран/континентов, которые состоят из более чем одного объекта полигона (например, США, Канада, у которых есть острова, кроме основной части суши) ? Я пытался использовать листовки Layer.getCenter()
или даже Layer.getBounds().getCenter()
, но эти методы, конечно же, не работают для этого типа стран и возвращают результаты «нет».Получить центр геойсона Континент/Страна/Штат с лифтом
Пример можно увидеть по следующей ссылке (детская площадка). Просто прокрутите и щелкните по США или Канаде и посмотрите, где появится circleMarker
. Тогда попробуйте нажать на более мелкие объекты, как и некоторые острова на юге США, они должны поместить этот маркер точно по центру of'em:
http://playground-leaflet.rhcloud.com/voyi/1/edit?html,output
Спасибо, это действительно правильный вопрос, который я хотел спросить, но мне не хватало знаний о центроидах. Большое спасибо, и я постараюсь получить хороший результат на основе информации, которую вы предоставили – Kamilius
'polylabel' помогает с полигонами. А как насчет «мультиполигонов»? Как для страны США, у которой есть Южная часть Северной Америки и Аляски? Можно ли что-то сделать в этом случае? – Kamilius
Рассчитайте площадь каждого из нескольких колец мультиполигона, затем примените 'polylabel' к самому большому. И/или отправьте запрос функции на https://github.com/mapbox/polylabel/issues – IvanSanchez