Перейти к содержанию
Innovialabs

Карты в мобильном приложении: Google Maps SDK или Yandex MapKit

Практика3 мин

Коротко

Для приложений, работающих в Узбекистане и СНГ, Yandex MapKit часто даёт более подробные адреса и объекты, а Google Maps SDK удобнее для международного продукта и экосистемы Google. Выбор делайте после проверки на реальных адресах ваших пользователей и с учётом цены геокодинга и маршрутов.

Короткий ответ

Если пользователи в основном в Узбекистане, Казахстане или других странах СНГ, а продукт завязан на адреса (доставка, такси, сервисы на дом), начните с проверки Yandex MapKit: в регионе у Яндекса обычно подробнее адресный план и база организаций. Если продукт международный или вы уже используете Firebase и сервисы Google, удобнее Google Maps SDK.

Но решает не репутация, а данные: возьмите 30–50 реальных адресов ваших клиентов и проверьте, как каждый сервис их находит.

Покрытие в Узбекистане и СНГ

Что проверять в своём городе:

  • Адреса до дома: находится ли дом по улице и номеру, или только улица.
  • Ориентиры: в Ташкенте и регионах люди часто описывают адрес через махаллю или ориентир. Посмотрите, как поиск справляется с такими запросами.
  • Организации (POI): актуальность магазинов, кафе, офисов.
  • Языки: как отображаются и ищутся названия на узбекском латиницей, кириллицей и на русском.
  • Новостройки и пригороды: насколько быстро обновляются данные.

Вне СНГ покрытие Google, как правило, шире и ровнее, поэтому для приложения с аудиторией в разных регионах мира часто берут Google или комбинируют провайдеров.

Тарифы и лимиты

Точные цены меняются, поэтому сравнивайте по структуре и сверяйтесь с актуальными страницами тарифов.

Google Maps PlatformYandex MapKit
Показ карты в мобильном SDKНет отдельной платы за загрузки карты в нативных SDKБесплатное использование с ограничениями и условиями, далее коммерческая лицензия
Геокодинг, поиск, маршрутыОтдельные API с оплатой за запрос и бесплатным месячным лимитомВходят в полную версию SDK, условия зависят от лицензии
Ключ и ограниченияAPI-ключ с ограничением по пакету и bundle IDAPI-ключ, лимиты по условиям использования

Главные факторы стоимости: сколько раз вы вызываете геокодинг и маршруты, а не сколько раз показываете карту. Кешируйте результаты геокодинга, не запрашивайте адрес на каждое движение карты и делайте запросы с задержкой (debounce) при вводе текста.

Геокодинг и маршруты

  • Google: Geocoding API, Places API для автодополнения адресов и Routes API для маршрутов и времени в пути. Это веб-сервисы, их часто вызывают с бэкенда, чтобы не держать ключ в приложении.
  • Yandex MapKit: есть облегчённая версия SDK (только карта) и полная — с поиском, геокодингом, маршрутизацией для авто, пешеходов и общественного транспорта и офлайн-картами. Полная версия заметно увеличивает размер приложения.

Для Flutter у Google есть официальный плагин google_maps_flutter, для MapKit используются плагины от сообщества или собственная обёртка над нативным SDK — заложите на это время.

Фоновая геолокация: правила сторов

Фоновое отслеживание — самая проверяемая часть.

Android:

  • разрешение ACCESS_BACKGROUND_LOCATION запрашивается отдельно, после разрешения на точную или приблизительную геолокацию;
  • в Google Play Console нужно задекларировать, зачем приложению фоновая геолокация, и показать это в видео;
  • для длительного отслеживания нужен foreground service с типом location и видимым уведомлением.

iOS:

  • в Info.plist нужны понятные тексты NSLocationWhenInUseUsageDescription и NSLocationAlwaysAndWhenInUseUsageDescription;
  • режим фона location в UIBackgroundModes — только если без него функция не работает;
  • сначала просите «При использовании», а «Всегда» — когда пользователь включил функцию, которой это нужно.

Если фоновая геолокация не ключевая функция, стор может отклонить приложение. Часто достаточно геолокации только во время использования.

Расход батареи

  • Выбирайте точность под задачу: для города достаточно приблизительной геолокации, GPS нужен для навигации и трекинга курьера.
  • Увеличивайте интервал и минимальное расстояние между обновлениями.
  • Используйте Fused Location Provider на Android и significant location changes или геозоны на iOS вместо постоянного GPS.
  • Останавливайте обновления, когда экран с картой закрыт.
  • Отправляйте координаты на сервер пачками, а не каждую точку отдельным запросом.

Частые вопросы

Да. Например, показывать карту одного провайдера, а геокодинг брать у другого, или выбирать провайдера по стране. Проверьте условия использования: некоторые сервисы требуют показывать результаты только на своей карте.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.