Сделайте так, чтобы URL-адрес запроса идентификатора плитки работал с улицами-спутниками в стиле mapbox, используя folium

Я использую Python для нанесения геопространственных данных на карты. Для определенных стилей карт, таких как ["basic", "streets", "outdoors", "light", "dark", "satellite", "satellite-streets"], мне нужен токен доступа к mapbox, а для некоторых пакетов геопространственного построения, например folium, мне даже нужно создать свою собственную ссылку для получения фрагментов карты.

До сих пор он отлично работал со стилем "satellite":

mapbox_style = "satellite"
mapbox_access_token = "....blabla"

request_link = f"https://api.mapbox.com/v4/mapbox.{mapbox_style}/{{z}}/{{x}}/{{y}}@2x.jpg90?access_token={mapbox_access_token}"

Однако при выборе "satellite-streets" в качестве идентификатора плитки-карты на выходе фоновая карта больше не отображается. Не удается вставить "satellite-streets", "satellitestreets" and "satellite_streets" в вышеупомянутую строку ссылки.

Почему это так и как я могу узнать, какое имя правильного идентификатора плитки для "satellite-streets"?


person Andreas L.    schedule 20.04.2020    source источник


Ответы (1)


Я нашел ответ, когда обратился в службу поддержки. По-видимому, нужно получить доступ к статическим API-интерфейсам, имена которых указаны на их веб-сайте:

«В общем, стили, которые вы упомянули, включая« satellite_streets », на которые вы ссылаетесь, являются нашими классическими стилями, которые будут прекращены с 1 июня. Я бы рекомендовал использовать наш современный статический API эквивалентные современные стили. Это также позволит вам видеть самые последние данные об улицах.

Как в примере запроса ниже:

https://api.mapbox.com/styles/v1/mapbox/ssatellite-streets-v11/tiles/1/1/0?access_token= {your_token}.

Здесь есть дополнительная информация об отказе от классических стилей и руководство по их переходу."

Моя личная адаптация после того, как все испробовала сама:

Комбинируя вышеупомянутое с подробностями о том, как создать ссылку на запрос Mapbox на этот документ с веб-сайта mapbox, мне наконец удалось заставить его работать.

Пример запроса выглядит так (в Python с использованием f-строк):

mapbox_tile_URL = f"https://api.mapbox.com/styles/v1/mapbox/{tileset_ID_str}/tiles/{tilesize_pixels}/{{z}}/{{x}}/{{y}}@2x?access_token={mapbox_access_token}"

Tileset_ID_str может быть, например, "satellite-streets-v11", который можно увидеть по следующей ссылке, содержащей действительные статические карты.

person Andreas L.    schedule 10.05.2020
comment
Полезная информация - не могу поверить, что это четко не задокументировано на сайте MapBox. Также жаль, что стоимость API статических карт астрономическая, когда используется вместо запросов плитки :( - person StephenT; 08.04.2021