Миграция

Отказ от интеграции с данными о высоте Google Maps Platform

Определение высоты обычно бывает незаметной зависимостью: его вызывает функция профиля маршрута в приложении для пеших походов, планировщик полётов дрона, проверяющий запас высоты над рельефом, или инструмент для геодезической съёмки, и оно редко бывает причиной, по которой вообще существует аккаунт Google Maps Platform. Поэтому оно хорошо подходит для переноса независимо от всего остального в более широкой интеграции с Google, ведь вызывающий код обычно сосредоточен в одной или двух функциях.

Elevation API от Google принимает одну или несколько пар координат и возвращает значение elevation в метрах вместе с показателем resolution, описывающим точность исходной выборки данных. Это компактный ответ, в котором мало что нужно разбирать, поэтому сама миграция остаётся довольно небольшой по объёму, хотя исходный источник данных меняется.

В My Geocode определение высоты работает как полноценный эндпоинт с простой формой запроса и ответа: отправляете координату, получаете высоту поверхности земли в метрах. Поскольку это один из запросов, для которых можно прямо описать реальные ответы, а не только форму ответа, проверка этой миграции на известных эталонных точках (конкретной горной вершине или прибрежном месте на уровне моря) это разумный способ обрести уверенность перед переключением рабочего трафика. Подробности находятся по адресу /docs/elevation-lookup/.

Несколько вещей, которые стоит проверить именно при этом переходе:

  • Зависит ли ваш код от поля resolution Google для чего-либо помимо отображения, поскольку показатель разрешения по-разному описывает точность выборки в разных источниках данных о высоте, и любая логика ниже по цепочке, зависящая от конкретного значения разрешения, заслуживает проверки
  • Выполняются ли запросы высоты пакетом (много координат в одном вызове) или по одному, поскольку форма пакетных запросов у разных провайдеров различается и её стоит протестировать на тех размерах пакетов, которые действительно использует ваше приложение
  • Вызывается ли определение высоты напрямую из клиентского кода; это подходящий момент, чтобы перенести вызов на сервер, независимо от того, к какому провайдеру вы переходите

Аутентификация выполняется по ключу, передаваемому в виде X-API-Key, Authorization: Bearer, HTTP Basic auth или параметра запроса. Доступно 2 500 бесплатных запросов в день вообще без ключа и ещё 2 500 бесплатных на каждый ключ в день с учётом по сети, а сверх этого действует предоплаченный баланс по 0,0001 € за запрос или ключ Unlimited за 50 € в месяц, по той же цене, что и любой другой эндпоинт платформы.

Дополнительные данные помимо самой высоты, например подробности об IP-угрозах и сведения о сети, полезные для других частей приложения, доступны на совместимых хостах через mg_extras=1, хотя для чистой миграции высот, как в этом случае, отдельный эндпоинт обычно проще и подходит напрямую. Перенос определения высоты отдельно, до более крупной миграции геокодирования, это малорискованный способ начать снижать зависимость от одного аккаунта, не берясь сразу за большой проект.