Миграция

Переход с Mapbox Geocoding

Mapbox Geocoding возвращает результаты в виде GeoJSON FeatureCollection, и это осознанный выбор: такой вывод легко передать напрямую в Mapbox GL или любую другую картографическую библиотеку, понимающую GeoJSON. Каждый объект содержит пару координат center, строку place_name и массив context, описывающий регион, страну и почтовый индекс, в которые он входит. Аутентификация выполняется с помощью токена доступа, обычно передаваемого как параметр запроса, и многие команды используют один и тот же токен и для тайлов веб-карты, и для вызовов геокодирования.

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

Совместимый хост My Geocode для Mapbox воспроизводит структуру FeatureCollection, включая поля center, place_name и context, поэтому код, построенный вокруг response.features[0].center, продолжает работать после замены. От ответа самого Mapbox отличаются только тексты об авторских правах, условиях и конфиденциальности. Справочник по полям находится по адресу /compatibility/mapbox/.

Несколько практических замечаний для команд, которые совершают этот переход:

  • Если ваш фронтенд вызывает Mapbox Geocoding напрямую из клиентского JavaScript, стоит подумать о том, чтобы сначала перенести этот вызов в серверный прокси, независимо от того, на каком провайдере вы остановитесь, поскольку так API-ключи не попадают в код браузера
  • Аутентификация принимает заголовок X-API-Key, заголовок Authorization: Bearer, HTTP Basic auth или параметр запроса, поэтому любой способ, которым ваш текущий клиент Mapbox передаёт токен доступа, должен соответствовать одному из этих вариантов
  • Если вы используете параметры proximity или ограничивающего прямоугольника Mapbox, чтобы смещать результаты к определённому региону, проверьте в документации совместимого хоста названия эквивалентных параметров, прежде чем считать, что они переносятся без изменений

Цены избавляют от системы уровней токенов, которая на многих картографических платформах растёт вместе с объёмом использования. Здесь 2 500 запросов в день бесплатны вообще без ключа, и каждый ключ также получает собственные 2 500 бесплатных запросов в день с учётом по сети. Дальше действует предоплаченный баланс по 0,0001 € за запрос или ключ Unlimited за 50 € в месяц, и каждый эндпоинт, включая этот совместимый хост, стоит одинаково.

Поскольку Mapbox часто используют вместе с тайлами карт и статическими изображениями карт, а не только для геокодирования, стоит чётко обозначить границы: My Geocode это API для геокодирования, определения IP, часового пояса, высоты и почтового индекса, а не поставщик тайлов или базовых карт. Командам, которые сохраняют текущую отрисовку карт и переносят на новый хост только поиск адресов, следует рассчитывать на то, что какое-то время они будут использовать двух провайдеров параллельно, одного для тайлов и другого для геокодирования, и это нормальный и стабильный способ разделить работу, а не временное состояние, которое нужно поскорее пройти.