Как получить границу L.polygon, исключая внутренние точки - PullRequest
1 голос
/ 04 мая 2019

Я работаю с Leaflet.js библиотекой. У меня есть массив географических точек, описываемых широтой и долготой, и многоугольник, основанный на этих точках. Как я могу удалить внутренние точки многоугольника и нарисовать только его внешнюю границу?

Массив точек

[[53, 31], [51.4, 31.2], [51.3, 32] ... etc.] //it's length ~ 500 points.

Карта инициализации

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(mymap);

Настройка многоугольника

L.polygon(points, {color: 'red'}).addTo(mymap);

Это то, что у меня есть сейчас. Здесь показано все 500 баллов.

Результат, которого я ожидаю. Здесь все внутренние точки удалены, показывая покрытую область.

1 Ответ

2 голосов
/ 06 мая 2019

Звучит так, будто вы ищете алгоритм выпуклой оболочки: он предоставит вам «конверт» ваших очков.

Вы можете использовать, например, Turfjs: https://turfjs.org/docs/#convex

Но учтите, что для этого требуется работа с данными, преобразованными в объекты GeoJSON.

Вы также можете посмотреть, как плагин Leaflet.markercluster реализовал его.

...