Миграция

OpenCage, LocationIQ и Geoapify: в чём реальная разница

OpenCage, LocationIQ и Geoapify так часто упоминают вместе в обсуждениях разработчиков, что стоит точно разобраться, что на самом деле их различает: сходство реально, но реальны и различия, которые важны для интеграции.

Все три выполняют аутентификацию по ключу, передаваемому как параметр запроса, и это самый распространённый подход среди небольших и средних провайдеров геокодирования в целом. Расходятся они в охвате и структуре ответа.

OpenCage сохраняет узкую специализацию: прямое и обратное геокодирование с ответом, построенным вокруг массива results и объекта components, который разбивает адрес на поля вроде road и city. Под капотом он объединяет несколько открытых источников данных, и его привлекательность во многом связана с простотой и прозрачностью в том, откуда берутся исходные данные.

LocationIQ тоже построен на открытых географических данных, и форма его ответа (lat, lon, display_name и объект address) покажется знакомой всем, кто работал с данными на основе OpenStreetMap напрямую. Его обычно выбирают команды, которым нужна основа из открытых данных с управляемым слоем API поверх неё, без необходимости запускать собственную инфраструктуру геокодирования.

Geoapify придерживается более широкого подхода и объединяет геокодирование с маршрутизацией, поиском мест и стилизацией карт под одним API-ключом и одним аккаунтом. Его ответ геокодирования следует похожей на GeoJSON структуре массива features с объектами properties и geometry. Настоящее отличие здесь именно в этом объединении: команда, выбирающая Geoapify, часто принимает решение о консолидации нескольких функций, связанных с местоположением, у одного поставщика, а не просто выбирает геокодер.

Для команды, которая оценивает любой из этих трёх вариантов или уходит с одного из них, первый структурный вопрос, на который стоит ответить: нужно ли вам только геокодирование (под эту более узкую потребность подходят и OpenCage, и LocationIQ) или более широкий набор функций, связанных с местоположением, в одном аккаунте (что ближе к тому, для чего создан Geoapify).

My Geocode поддерживает совместимые хосты для всех трёх: структуру results и components от OpenCage по адресу /compatibility/opencage/, поля lat, lon и display_name от LocationIQ по адресу /compatibility/locationiq/ и массив features от Geoapify по адресу /compatibility/geoapify/. Каждый воспроизводит точную форму ответа своего провайдера, за исключением текстов об авторских правах, условиях и конфиденциальности, а значит, команда, которая сейчас распределена между двумя из этих трёх провайдеров или оценивает консолидацию, может протестировать каждую форму на одной платформе без трёх отдельных аккаунтов.

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