Карта в приложении нужна чаще, чем кажется на старте. Точки продаж на сайте магазина, отслеживание курьера в доставке, геолокация пользователя в приложении знакомств, витрина заведений на сайте кофейни — за каждым из этих сценариев стоит одна и та же техническая задача: вывести карту и связать её с данными приложения. Разработчик первым делом вспоминает Google Maps, но для проекта, который живёт в российском вебе, у него быстро находится изъян. Разберём, чем 2GIS API и Яндекс Карты API закрывают ту же задачу без лишней головной боли.
Содержание
Зачем в приложении вообще карта
Карта в интерфейсе — это не украшение, а способ показать данные, у которых есть координаты. Несколько типичных задач:
- Точки продаж и филиалы. Сеть магазинов или салонов показывает адреса не списком, а метками на карте — так пользователь сразу видит ближайший.
- Доставка и логистика. Трекинг курьера, построение маршрута от склада до клиента, расчёт времени в пути.
- Геолокация пользователя. Приложение определяет, где находится человек, и подстраивает выдачу — ближайшие заведения, локальные акции, региональный контент.
- Витрина заведений. Агрегаторы кафе, салонов красоты, спортзалов используют карту как основной способ навигации по каталогу.
- Поиск и подсказки адреса. В форме заказа или регистрации пользователь начинает вводить адрес, а сервис подсказывает варианты и сразу переводит текст в координаты.
Во всех этих случаях приложению нужны три вещи от карты: сама визуализация (тайлы, зум, метки), геокодирование (превращение адреса в координаты и обратно) и иногда построение маршрутов. Разные провайдеры карт закрывают эти задачи с разным качеством для разных регионов.
Почему Google Maps — не лучший выбор для проекта из России
Google Maps Platform остаётся мировым стандартом, и для международного продукта это часто разумный выбор. Но для проекта, который делается и обслуживается из России, есть два практических неудобства.
Первое — привязка биллинга. Google Maps Platform работает по модели pay-as-you-go, и подключение полноценного тарифа требует карты, привязанной к аккаунту Google Cloud с работающим биллингом. Для российских карт это обычно проблема, и приходится искать обходные пути — иностранную карту, посредника или заранее закладывать в проект такую зависимость. Это лишний слой сложности для приложения, которое по сути решает локальную задачу: показать точки на карте российского города.
Второе — стабильность доступа. Часть сервисов Google в текущей ситуации работает из России с перебоями: то через VPN, то напрямую, но без гарантии, что завтра будет так же. Для карты, которая должна грузиться у каждого пользователя сайта, такая нестабильность — прямой риск потерять часть аудитории просто из-за того, что тайлы карты не подгрузились.
Дело не в том, что Google Maps плох технически — он один из самых точных и детализированных картографических сервисов в мире. Просто для приложения с российской аудиторией и российским биллингом есть более практичные альтернативы, которые работают без лишних прокладок.
2GIS API: что умеет
2GIS — российский картографический сервис, который вырос из электронных справочников организаций. Это его сильная сторона: база данных компаний, филиалов, режимов работы и отзывов у 2GIS одна из самых полных на рынке СНГ, особенно в средних и малых городах, где Google Maps и Яндекс Карты не всегда одинаково детализированы.
Основные продукты 2GIS API для разработчика:
- Карта (MapGL). JavaScript-библиотека для встраивания интерактивной карты на сайт или в веб-приложение — с тайлами, зумом, метками, кастомными слоями.
- Поиск организаций (Places API). Поиск компаний по названию, категории или рубрике с привязкой к конкретному городу и району. Удобно для витрины заведений — кафе, салонов, магазинов.
- Маршруты и навигация (Routing API). Построение маршрута между точками с учётом дорожной сети, включая пешеходные и автомобильные варианты.
- Geosuggest. Подсказки при вводе адреса или названия организации — то самое автодополнение в поле поиска, которое на лету предлагает варианты по мере набора текста.
Для приложений, где важна не просто точка на карте, а связка «адрес — организация — режим работы — отзывы», 2GIS часто оказывается точнее конкурентов именно за счёт своей истории справочника организаций.
Отдельно у 2GIS есть Static Maps API — картинка карты с меткой, отданная как обычное изображение, без подключения JavaScript. Такой вариант годится, если карта нужна не как интерактивный элемент, а как иллюстрация: в письме-подтверждении заказа, в PDF-чеке или на странице, где скрипты по каким-то причинам нежелательны.
Яндекс Карты API: что умеет
Яндекс Карты — самый узнаваемый картографический сервис в рунете, и для веб-разработчика это ещё и один из самых зрелых JS API на рынке: библиотека существует давно, у неё большое сообщество и много готовых примеров.
Основные возможности:
- Карта (JavaScript API). Полноценная библиотека для веба: тайлы, метки, кластеры меток, кастомные балуны с информацией, слои и оверлеи.
- Геокодер. Превращение текстового адреса в координаты (геокодирование) и обратно — координат в человекочитаемый адрес (обратное геокодирование). Это основа для любой формы, где пользователь вводит адрес доставки или самовывоза.
- Маршрутизация. Построение маршрутов между точками, в том числе с несколькими промежуточными остановками.
- Панорамы и слои. Дополнительные визуальные возможности — уличные панорамы, пробки, спутниковый слой — которые пригождаются не в каждом проекте, но расширяют набор инструментов.
Сила Яндекс Карт — в зрелости геокодера и в том, что для чисто веб-задачи «встроить карту на сайт» это один из самых отлаженных инструментов на рынке: документация подробная, а примеров интеграции в открытом доступе много.
Как и у 2GIS, у Яндекса есть Static API — статичное изображение карты с метками по прямой ссылке, без JavaScript. Разница между статичной и динамической картой принципиальная: статичная годится там, где пользователь не взаимодействует с картой (превью, письмо, распечатка), а динамическая нужна там, где карту двигают, зумируют и кликают по меткам.
Кроме веба, оба сервиса предлагают мобильные SDK — отдельные библиотеки для iOS и Android. Если приложение собирается не как сайт, а как нативное мобильное приложение, карта подключается уже не через JS API, а через соответствующий SDK, и логика работы с ключом та же, но кабинет разработчика может просить указать не домен, а идентификатор приложения (application ID, bundle ID).
Сравнительная таблица: 2GIS vs Яндекс Карты
| Параметр | 2GIS API | Яндекс Карты API |
|---|---|---|
| Охват и детализация | Сильнее в средних и малых городах СНГ | Сильнее в крупных городах и общей картографической базе |
| Что развито лучше | Поиск и данные организаций (справочник) | Геокодер и зрелость JS API для веба |
| Формат подключения | JS-библиотека MapGL + отдельные REST-эндпоинты (Places, Routing, Geosuggest) | Единый JavaScript API + отдельный REST-геокодер |
| Маршруты | Есть, включая пешеходные | Есть, включая маршруты с несколькими точками |
| Для чего лучше подходит | Витрины организаций, каталоги филиалов, поиск по рубрикам | Формы с адресом, геокодирование, стандартная карта на сайте |
| Ключ API | Отдельный ключ на кабинет разработчика 2GIS | Отдельный ключ на кабинет Яндекс Карт для разработчиков |
Если задача — просто показать карту с точками и научиться превращать адрес в координаты, обе платформы справятся одинаково хорошо, и выбор часто сводится к личным предпочтениям или уже накопленному опыту команды. Если в приложении важен поиск заведений по категориям и данные о филиалах — 2GIS будет точнее за счёт своей истории справочника. Если приоритет — надёжный геокодер для формы доставки — у Яндекс Карт это более обкатанное решение.
Ничто не мешает использовать оба сервиса в одном проекте: например, карту рисовать через Яндекс, а поиск организаций дёргать через 2GIS. Технически это два независимых API, и они не конфликтуют друг с другом.
Как получить ключ API
Принцип получения ключа у обоих сервисов одинаковый и стандартный для картографических API:
- Заходишь в кабинет разработчика соответствующего сервиса — у 2GIS и у Яндекса это отдельный портал для разработчиков API, не общий личный кабинет пользователя карт.
- Регистрируешь новый проект или приложение внутри кабинета — обычно достаточно указать название и назначение.
- Создаёшь ключ API — система выдаёт строку-идентификатор, которую приложение будет передавать при каждом запросе к карте или геокодеру.
- Привязываешь ключ к домену или к приложению — большинство картографических сервисов просят указать, с каких доменов ключ разрешено использовать. Это защита от того, чтобы твой ключ не утащили и не использовали на чужом сайте.
- Вставляешь ключ в код — обычно как параметр при подключении JS-библиотеки или как заголовок в REST-запросе.
Актуальные шаги интерфейса и точные лимиты бесплатного тарифа смотри в документации конкретного сервиса — оба кабинета разработчика периодически меняют интерфейс, и описывать точные клики здесь смысла нет. Общий принцип у большинства картографических API одинаковый: есть бесплатный порог запросов в месяц, а после него включается платный тариф с оплатой за превышение — но конкретные цифры и условия у каждого сервиса свои и стоит проверять их непосредственно перед стартом проекта.
Пример задачи: вставить карту с точкой на сайт
Возьмём частую задачу — на сайте кофейни или магазина нужна карта с одной меткой на месте заведения. Принцип решения одинаковый что для 2GIS, что для Яндекс Карт:
- Подключаешь JS-библиотеку карты на страницу — скриптом с параметром, в который передан твой ключ API.
- Создаёшь контейнер на странице — обычный
<div>с заданной высотой и шириной, в него карта отрисуется. - Инициализируешь карту — указываешь координаты центра (широта и долгота адреса заведения) и начальный зум.
- Добавляешь метку на нужные координаты — это отдельный объект карты, который можно кастомизировать иконкой или всплывающей подсказкой с адресом и режимом работы.
- Если адрес известен только текстом, а не координатами — сначала прогоняешь его через геокодер, получаешь координаты и только потом ставишь метку.
Именно на этом шаге и пригождается связка «геокодер + карта»: пользователь или администратор сайта вводит адрес человеческим языком, а приложение само превращает его в точку на карте. Это же принцип работает и в обратную сторону — если у тебя уже есть координаты (например, от GPS телефона), геокодер переведёт их в читаемый адрес для показа пользователю.
Похожая, но чуть более сложная задача — показать маршрут доставки от склада до клиента. Здесь к тем же шагам добавляется вызов Routing API: приложение передаёт координаты старта и финиша, сервис возвращает набор точек маршрута по дорожной сети, и эти точки рисуются на карте линией. Если промежуточных точек несколько — например, курьер объезжает несколько заказов подряд — большинство маршрутизаторов умеют строить маршрут сразу через весь список точек, а не только между двумя.
Частые вопросы
Можно ли использовать 2GIS API и Яндекс Карты API бесплатно?
У обоих сервисов есть тарифы для разработчиков с ограничениями по количеству запросов. Точные лимиты и условия периодически меняются, поэтому актуальные цифры смотри в документации каждого сервиса перед стартом проекта.
Что выбрать для интернет-магазина с доставкой?
Для формы «укажи адрес доставки» ключевая функция — геокодер, и здесь оба сервиса справляются. Если важно ещё и показать пользователю ближайшие точки самовывоза с режимом работы, добавляется поиск организаций — тут 2GIS обычно точнее за счёт справочника.
Работает ли 2GIS API за пределами России и СНГ?
2GIS исторически силён именно в городах России, стран СНГ и ряда других регионов, где у сервиса есть собственная картографическая база. Для международного проекта с аудиторией в Европе или США картография может быть заметно менее детализированной.
Можно ли одновременно использовать 2GIS, Яндекс Карты и Google Maps в одном проекте?
Технически да — это независимые API, и ничто не мешает подключить несколько карт для разных сценариев. На практике для большинства проектов достаточно одного провайдера: несколько карт усложняют поддержку и увеличивают число ключей, которые нужно хранить и обновлять.
Нужен ли отдельный ключ для мобильного приложения и для сайта?
Да, обычно ключи привязываются к конкретной платформе или домену — ключ для веба и ключ для мобильного приложения оформляются отдельно в кабинете разработчика. Так сервис может ограничивать использование ключа только тем окружением, для которого он выдан.
Что делать, если карта не грузится после подключения ключа?
Чаще всего причина в привязке ключа к домену — если ключ создан для одного адреса, а карта тестируется на другом (например, на localhost), сервис может блокировать запросы. Стоит проверить настройки привязки в кабинете разработчика и убедиться, что домен теста добавлен в разрешённые.
Подойдёт ли 2GIS или Яндекс Карты, если сайт собран на конструкторе, а не написан с нуля?
Зависит от конструктора. Если он позволяет вставлять произвольный HTML или JavaScript-блок на страницу, карту можно подключить тем же способом, что и на обычном сайте. Если конструктор такой возможности не даёт, ищи встроенный блок карты в его собственном наборе виджетов — обычно он уже использует один из этих API под капотом.
Нужен ли отдельный сервер для работы с картой API?
Для самой карты и геокодера — нет: JS-библиотека работает прямо в браузере пользователя, а запросы к API идут с ключом, привязанным к домену. Сервер понадобится, только если нужно спрятать логику — например, объединить данные о заказах из своей базы с координатами перед показом на карте, или если API требует авторизацию, которую нежелательно светить в браузере.
Заключение
Google Maps остаётся сильным инструментом, но для приложения, которое делается и живёт в российском вебе, привязка биллинга к иностранной карте и нестабильный доступ — не то, ради чего стоит усложнять простую задачу. 2GIS и Яндекс Карты закрывают тот же набор функций — карту, геокодер, поиск и маршруты — без этих сложностей, и выбор между ними чаще сводится не к «что лучше», а к тому, что важнее для конкретного приложения: подробный справочник организаций или обкатанный геокодер для форм с адресом.
Если ты собираешь приложение с ИИ-ассистентом, о том, как вообще устроено взаимодействие с внешними сервисами через API, подробнее рассказано в статье «Что такое API». А если карта нужна в проекте, который ты уже строишь с помощью Claude, полезно заранее понимать, как работает Claude из России — доступ к самому ИИ-ассистенту и доступ к картографическому API решаются разными способами, и стоит не путать одно с другим.
Читай дальше
Все статьиНе просто статьи — тебя доведут до результата
В практикуме за 2499 ₽ рядом живая команда практикующих разработчиков и маркетологов: ведём по шагам до твоего работающего приложения. Не «ролики и сам разбирайся» — помогаем на каждом затыке.
Перейти к практикуму