Поменяйте хост, оставьте query-строку.
Из трёх миграций эта самая близкая по замыслу: имена полей и вложенность ответов повторяют документированные форматы HERE, поэтому большинство интеграций переезжают, не трогая код, который читает ответ.
- Те же имена полей и вложенность в геокодировании, маршрутах, матрицах, изохронах, трафике и местах
- Flexible polyline по умолчанию, как у HERE
- Одинаковые бесплатные лимиты — при переезде бесплатный уровень не сжимается
- Каждый тариф ровно вдвое ниже того прайса, который вы платите сегодня
Замена
Хост и заголовок авторизации. Всё ниже — карта параметров.
- https://geocode.search.hereapi.com?apiKey=YOUR_KEY
+ https://api.apinavi.com
+ Authorization: Bearer $APINAVI_KEYКарта параметров
Geocoding & search
| HERE | ApiNavi | Note |
|---|---|---|
| GET /v1/geocode?q= | GET /v1/geocode?q= | Identical. Response fields keep their names. |
| GET /v1/revgeocode?at= | GET /v1/revgeocode?at= | — |
| GET /v1/autosuggest?q=&at= | GET /v1/autosuggest?q=&at= | — |
| in=countryCode:DEU | in=countryCode:DEU | — |
| items[].scoring.queryScore | items[].scoring.queryScore | Same 0–1 range; our field scores cover fewer components. |
| items[].resultType=administrativeArea | items[].resultType=locality | We collapse three administrative levels into locality and district. |
Routing
| HERE | ApiNavi | Note |
|---|---|---|
| GET /v8/routes?transportMode= | GET /v1/routes?transportMode= | Version segment differs; parameters do not. |
| return=polyline,summary | return=polyline,summary | — |
| vehicle[grossWeight] | vehicle[grossWeight] | — |
| POST /v8/matrix | POST /v1/matrix | Synchronous up to 500×500; larger jobs return a job id. |
| GET /v8/isolines | GET /v1/isolines | — |
| spans=speedLimit,truckRestriction | spans=speedLimit,truckRestriction | — |
Maps & traffic
| HERE | ApiNavi | Note |
|---|---|---|
| maps.hereapi.com/v3/base/mc/{z}/{x}/{y}/png8 | /v1/tiles/raster/{z}/{x}/{y}.png | — |
| vector/mc/{z}/{x}/{y}/omv | /v1/tiles/vector/{z}/{x}/{y}.mvt | Layer names follow the OpenMapTiles convention rather than HERE's. |
| GET /v7/flow?in=bbox: | GET /v1/traffic/flow?in=bbox: | — |
| GET /v7/incidents?in= | GET /v1/traffic/incidents?in= | — |
Где это не замена один в один
Типы административных результатов
HERE возвращает три административных уровня; мы схлопываем их в locality и district. Если у вас ветвление по resultType, из него нужно убрать одну ветку.
Имена слоёв в векторных тайлах
Наши MVT-слои названы по соглашению OpenMapTiles, а не по схеме HERE. В стиле придётся переименовать ссылки на слои — механически, но не бесплатно.
Помещения и HD-данные
Мы не отдаём карты внутренних помещений и HD-контент по полосам. Если вы используете что-то из этого, эту миграцию делать не стоит.
Гранулярность скоринга
queryScore повторяет семантику HERE в диапазоне 0–1, но fieldScore охватывает меньше составляющих. Пороги обычно переносятся, покомпонентные проверки могут потребовать перенастройки.
Как это обычно делают
- 01
Тень
Неделю отправляйте копию боевого трафика обоим. Для пользователя ничего не меняется.
- 02
Сравнение
Сравните поле за полем на тех эндпоинтах, которыми реально пользуетесь. Обычно находится два-три настоящих отличия, а не двадцать.
- 03
Разделение
Переведите 5%, затем 50%, наблюдая за долей ошибок и задержкой по регионам.
- 04
Переключение
Переведите остальное, оставьте старый ключ живым на пару недель, потом отзовите.
Режим двойного прогона
Направьте часть трафика обоим поставщикам и сравните ответы. В консоли видно расхождение по полям на каждом эндпоинте, поэтому переключение делается по данным, а не по выборочной проверке.
Если решите уйти
Те же таблицы читаются в обратную сторону, а эндпоинт экспорта отдаёт ваши геозоны, стили и результаты пакетов в открытых форматах. Гайд по миграции, который смотрит только внутрь, — это тревожный признак, а не фича.
Чек-лист переключения
- Лимиты на новом ключе подняты до разделения трафика, а не после
- Потолок расходов выставлен на первый полный месяц
- Сохранённые идентификаторы мест перевыведены, если вы их храните
- Декодер полилинии проверен на известном маршруте
- Покрытие сверено по странам из длинного хвоста трафика
- Старый ключ отозван и удалён из секретов