Карты и геолокация в мобильном приложении: 2GIS, Google Maps, трекинг и геозоны
Карты и геолокация в приложении — это три связанных слоя: картографический SDK (2GIS, Google Maps или Yandex MapKit), получение координат устройства и серверная логика — трекинг, геозоны, расчёт маршрутов. Базовая интеграция карты стоит в Казахстане от 400 000 ₸, полноценный live-трекинг с геозонами — от 1,5 млн ₸.
За 19 лет работы команда Applications.kz встроила карты в десятки сервисов доставки, такси-подобных платформ, выездного сервиса и логистики — в Казахстане, ОАЭ и Таиланде. В этой статье разбираем, какую карту выбрать для казахстанского рынка, как устроен трекинг в реальном времени, зачем нужны геозоны и из чего складывается бюджет.
Какую карту выбрать: 2GIS, Google Maps или Yandex
Главная ошибка на старте — выбирать карту «по привычке», не глядя на географию пользователей и тип задачи. Для Казахстана расклад такой:
- 2GIS — лучшая детализация казахстанских городов: этажность, входы в здания, актуальная база организаций, навигация внутри ЖК. Если ваши пользователи в Алматы, Астане, Шымкенте — 2GIS почти всегда выигрывает по точности адресов. SDK для iOS/Android зрелый, есть маршрутизация с пробками.
- Google Maps — стандарт для международных продуктов. Если приложение работает и в KZ, и в Дубае или Бангкоке (как часть наших проектов), Google закрывает все рынки одним SDK. Минус — оплата в долларах по модели pay-as-you-go и более слабая детализация дворов в регионах Казахстана.
- Yandex MapKit — сильная маршрутизация и пробки в крупных городах СНГ, хороший геокодер по русскоязычным адресам. Разумный выбор, если продукт ориентирован на KZ + РФ и важна навигация для водителей.
Сравнительная таблица для проектов в Казахстане
| Критерий | 2GIS | Google Maps | Yandex MapKit |
|---|---|---|---|
| Детализация городов KZ | Максимальная | Средняя | Хорошая |
| База организаций KZ | Лучшая на рынке | Неполная | Средняя |
| Международное покрытие | Ограниченное | Весь мир | СНГ + частично мир |
| Пробки и маршруты | Есть | Есть | Сильная сторона |
| Модель оплаты | Лицензия/тарифы | $ за запросы | Тарифы по нагрузке |
| Типовой сценарий | Доставка, сервисы по KZ | Мультистрановые продукты | Водительские сценарии |
На практике мы нередко комбинируем: геокодинг и подсказки адресов берём у 2GIS (точность по KZ), а отрисовку карты — у того провайдера, чьи условия выгоднее при вашей нагрузке. Архитектурно это решается слоем абстракции в коде мобильного приложения: сменить провайдера потом можно без переписывания экранов.
Геолокация пользователя: точность, батарея, разрешения
Получить координаты телефона — задача на час. Получать их так, чтобы приложение не съедало батарею за полдня и не теряло курьера в подземном паркинге, — инженерная работа. Ключевые моменты:
- Режимы точности. GPS даёт 3–10 метров на улице, но в плотной застройке Алматы у подножия гор сигнал «прыгает». Комбинируем GPS + Wi-Fi + сотовые вышки и фильтруем выбросы (фильтр Калмана или сглаживание по скорости), иначе трек курьера будет «телепортироваться» через кварталы.
- Фоновая геолокация. iOS и Android жёстко ограничивают работу в фоне. Для курьерских приложений нужны корректные разрешения «Always allow», foreground-сервис на Android и обоснование для модерации App Store — Apple отклоняет приложения, которые запрашивают фоновый доступ без явной причины.
- Экономия батареи. Грамотная схема — адаптивная частота: раз в 5–10 секунд во время активного заказа, раз в несколько минут в ожидании, полная остановка вне смены. Это снижает расход с 25–30% батареи за смену до 5–8%.
- Приватность. Пользователь должен понимать, зачем приложению его позиция. Запрашивайте доступ в момент, когда польза очевидна (оформление доставки), а не на первом экране — это поднимает долю согласий в разы.
Трекинг в реальном времени: как устроен «курьер на карте»
Сценарий, который заказывают чаще всего: клиент видит, как курьер или мастер движется к нему по карте. Под капотом это полноценная realtime-система:
- Телефон курьера отправляет координаты пачками каждые 3–10 секунд — с буферизацией на случай пропадания сети (поезд метро, лифт, паркинг).
- Бэкенд принимает поток по WebSocket или MQTT, валидирует точки (скорость 300 км/ч по городу = мусорная точка), пишет в базу и рассылает подписчикам.
- Приложение клиента получает позицию и плавно анимирует маркер по дороге — не «скачками», а интерполяцией с привязкой к дорожному графу (map matching), чтобы машина не «ехала» по крышам домов.
- ETA пересчитывается на лету через маршрутный API выбранного провайдера с учётом пробок.
Технологически этот слой близок к realtime-мессенджингу — мы подробно разбирали WebSocket-архитектуру в статье про чат в мобильном приложении: трекинг и чат часто живут на одной инфраструктуре, что экономит бюджет.
Отдельный вопрос — хранение треков. Поток координат от 200 курьеров за месяц — это десятки миллионов точек. Мы используем PostgreSQL с PostGIS и партиционирование по датам: «горячие» данные для live-карты, агрегаты — для отчётов, сырые треки старше N месяцев — в архив. Без этого база распухает, и отчёт «где был курьер 3-го числа» строится минутами.
Геозоны (geofencing): автоматика, привязанная к месту
Геозона — это виртуальный контур на карте, при пересечении которого срабатывает событие. Самые востребованные сценарии в наших проектах:
- Зоны доставки и тарификация. Полигон «левый берег Астаны» — своя стоимость доставки, «за КАД» — своя или недоступно. Цена считается автоматически по адресу клиента.
- Автостатусы заказа. Курьер въехал в радиус 300 м от клиента — пуш «курьер рядом» уходит без участия оператора.
- Контроль выездных сотрудников. Мастер отметился «на объекте», находясь в 5 км от него, — система фиксирует расхождение для руководителя.
- Маркетинговые триггеры. Пользователь оказался рядом с филиалом — получает предложение. Работает, если применять дозированно: злоупотребление гео-пушами ведёт к удалению приложения.
Где проверять вхождение в зону — на телефоне или на сервере
Нативные геозоны iOS/Android работают даже при закрытом приложении, но ограничены по количеству (на iOS — 20 регионов на приложение) и поддерживают только круги. Серверная проверка через PostGIS снимает лимиты и позволяет рисовать полигоны любой формы — реальные границы районов, а не круги. В боевых проектах мы комбинируем оба подхода: грубый круг на устройстве будит приложение, точный полигон проверяет сервер.
Управлять зонами должен не разработчик, а ваш менеджер: рисовать полигоны, менять тарифы, включать пуши. Этот инструмент живёт в админ-панели приложения — редактор зон на карте мы закладываем в неё с первого спринта, иначе каждое изменение границ доставки превращается в задачу программисту.
Сколько стоит геолокация в приложении: цены для Казахстана
Бюджет зависит не от «карты как картинки», а от глубины логики. Ориентиры по рынку KZ на 2026 год — работы под ключ, обе платформы:
| Модуль | Что входит | Стоимость | Срок |
|---|---|---|---|
| Карта + точки на ней | SDK, маркеры филиалов, карточки, построение маршрута «как добраться» | 400 000 – 900 000 ₸ | 2–3 недели |
| Геокодинг и адреса | Подсказки при вводе, определение адреса по точке, валидация зоны доставки | 500 000 – 1 000 000 ₸ | 2–4 недели |
| Live-трекинг | Фоновый сбор координат, WebSocket-канал, анимация маркера, ETA, хранение треков | 1 500 000 – 3 500 000 ₸ | 4–8 недель |
| Геозоны + автоматика | Редактор полигонов в админке, тарифы по зонам, события и пуши | 800 000 – 2 000 000 ₸ | 3–6 недель |
| Распределение заказов по гео | Поиск ближайшего исполнителя, балансировка нагрузки, очереди | от 2 000 000 ₸ | от 6 недель |
К этому добавляются операционные расходы на API провайдера: при нагрузке до ~100 000 запросов карт в месяц это обычно десятки тысяч тенге, у сервисов с тысячами активных курьеров — заметная статья бюджета, которую мы считаем на этапе сметы и оптимизируем кешированием геокодинга и тайлов.
Подводные камни, которые всплывают после запуска
- Лицензии провайдеров. У Google и Yandex есть ограничения на кеширование данных и показ их карт рядом с чужими данными маршрутизации. Нарушение — риск блокировки ключа в самый неподходящий момент.
- Модерация сторов. Фоновая геолокация — частая причина reject в App Store. Нужны корректные тексты разрешений и видео-демонстрация сценария для ревьюера.
- Эмуляция GPS. Курьеры-хитрецы подделывают координаты fake-GPS-приложениями. Защита: проверка mock-флагов, анализ правдоподобности трека, сверка с фактом выполнения заказа.
- Деградация без сети. Приложение должно осмысленно работать в лифте и на цокольном этаже ТРЦ: буферизовать точки, показывать последнюю известную позицию с пометкой времени.
Эти вещи дешевле заложить в архитектуру сразу, чем чинить на живом продукте с реальными заказами.
Как мы строим гео-функции в Applications.kz
Студия работает с 2007 года, за плечами 300+ проектов в Казахстане, ОАЭ и Таиланде — значительная часть из них так или иначе завязана на карты: доставка, выездной сервис, логистика, агрегаторы. Мы начинаем не с выбора SDK, а с экономики: сколько запросов геокодинга и тайлов сгенерирует ваша аудитория через год и какой провайдер при этой нагрузке дешевле. Затем проектируем серверный слой (PostGIS, realtime-канал, очереди) и только потом — экраны. Такой порядок страхует от ситуации «карта красивая, а счёт за API съедает маржу». Если вы планируете разработку мобильного приложения с картами, трекингом или зонами доставки — присылайте задачу на +7 (707) 928-13-15, директор Иван Калита и команда подготовят смету за 24 часа.
Частые вопросы
Можно ли использовать 2GIS в коммерческом приложении бесплатно?
Нет, для коммерческого использования SDK и API 2GIS нужна лицензия — условия зависят от объёма запросов и функций (карта, геокодинг, маршруты). У Google и Yandex модель похожая: бесплатные квоты на старте, дальше оплата по нагрузке. Мы рассчитываем прогноз расходов на API ещё на этапе сметы, чтобы операционка не стала сюрпризом.
Сильно ли трекинг сажает батарею телефона курьера?
При наивной реализации (GPS на максимуме каждую секунду) — да, до трети заряда за смену. Грамотная схема использует адаптивную частоту опроса, отправку координат пачками и переключение на сотовые вышки при низкой скорости движения. В таком режиме расход держится в пределах 5–10% за рабочий день, что курьеры практически не замечают.
Что выбрать для приложения, работающего и в Казахстане, и за рубежом?
Чаще всего — Google Maps как основной слой плюс 2GIS для геокодинга казахстанских адресов, где он заметно точнее. Мы проектируем картографический слой через абстракцию, поэтому в KZ-сборке может работать один провайдер, в зарубежной — другой, без дублирования кода экранов. Это стандартная практика в наших проектах для ОАЭ и Таиланда.
Сколько геозон можно создать и кто ими управляет?
При серверной проверке через PostGIS количество полигонов практически не ограничено — лимит в 20 регионов касается только нативных геозон iOS. Управление выносим в админ-панель: менеджер рисует полигон на карте, задаёт тариф или триггер и сохраняет — изменения применяются сразу, без участия разработчиков и без обновления приложения в сторах.
Сколько времени занимает добавление live-трекинга в существующее приложение?
Если у приложения есть нормальный бэкенд — обычно 4–8 недель: фоновый сбор координат на двух платформах, realtime-канал, анимация маркера, ETA и хранение треков. Срок растёт, если серверная часть не готова к постоянным соединениям и нужна доработка инфраструктуры. Точную оценку по вашему стеку даём после короткого технического аудита — смета за 24 часа.