Mapbox GL JS - Выделить Страна Полигон - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть опция select2, где пользователь может выбрать континент, регион, страну, город или аэропорт.Я интегрировал mapbox для добавления маркеров на карту при выборе местоположения.

В случае выбора страны и континента, я хотел бы выбрать всю страну / континент вместо просто маркера.

Iпопытался использовать API геокодирования Mapbox, например https://api.mapbox.com/geocoding/v5/mapbox.places/germany.json?types=country&access_token=****, но я заметил, что он возвращает только координаты точки.

Я хотел бы использовать службу, в которой я предоставляю название страны / континента, и он возвращает многоугольник со всеми координатами границы, чтобы иметь возможность выделить многоугольник на карте.

Есть ли в mapbox встроенный сервис для такой функциональности?Или мне нужно использовать сторонний сервис или файл json?

1 Ответ

1 голос
/ 23 мая 2019

, в то время как API геокодирования Mapbox не возвращает полную геометрию полигона для объекта, вы можете использовать API геокодирования в сочетании с несколькими другими источниками данных и инструментами с открытым исходным кодом.

Вот начало рабочего процесса, которое вы можете попробовать:

  1. запросить API геокодирования с текстом для названия страны, например, "germany", и захватить lon, latкоординаты из свойства coordinates ответа API.

  2. использовать данные многоугольника в формате геоджон из открытого источника, такого как Natural Earth: https://www.naturalearthdata.com/downloads/

  3. передайте координаты и данные многоугольника в эту функцию turf.js: http://turfjs.org/docs/#booleanPointInPolygon

  4. определите многоугольник, в котором находится точка, и выделите эти границы на карте.Подробнее о том, как использовать GL JS для подсвечивающей части, смотрите страницу примеров: https://docs.mapbox.com/mapbox-gl-js/example/query-similar-features/

...