Telegram позволяет пользователям отправлять геолокацию одним нажатием — и бот может использовать эти данные для десятков практических сценариев. Найти ближайший офис, рассчитать зону доставки, показать точки на карте, ограничить работу только для своего города — всё это реализуется без разработки отдельного приложения.
Геолокация в боте — это не просто удобная фича. Для бизнесов с географической привязкой (доставка, розница, выездные услуги) это критическая часть воронки продаж.
Как работает геолокация в Telegram Bot API
Telegram поддерживает два способа передачи местоположения.
Разовая геолокация. Пользователь нажимает кнопку «Отправить местоположение» (Telegram показывает стандартный системный диалог с запросом разрешения), выбирает текущую позицию или точку на карте и отправляет её. Бот получает объект с координатами (широта, долгота).
Живая геолокация. Telegram позволяет отправлять обновляемое местоположение в реальном времени на заданный период (5-60 минут). Полезно для трекинга курьеров или транспорта в реальном времени.
Точность зависит от устройства: GPS на улице даёт погрешность 3-10 метров, Wi-Fi-позиционирование в помещении — 20-50 метров. Для большинства бизнес-сценариев этого достаточно.
Сценарий 1: Доставка с расчётом зоны и цены
Для бизнесов с доставкой (еда, цветы, товары, курьерские услуги) геолокация решает сразу три задачи.
Подтверждение зоны обслуживания. Клиент отправляет геолокацию — бот проверяет, входит ли адрес в зону доставки. Если нет — честно сообщает и предлагает альтернативу (самовывоз, другой город). Это лучше, чем принять заказ и потом отменить.
Автоматический расчёт стоимости. Зная расстояние от склада до клиента, бот рассчитывает стоимость доставки. Простая тарификация: зона 1 (до 5 км) — 200 рублей, зона 2 (5-10 км) — 350 рублей. Сложная — интеграция с картографическим API для расчёта реального маршрута.
Уточнение адреса. После геолокации бот предлагает подтвердить адрес текстом («Пушкина 15, кв. 34, 3 этаж») и сохраняет его для следующего заказа. Повторный клиент тратит на оформление 30 секунд вместо 3 минут.
Пример диалога:
— Нажмите «Поделиться геолокацией», чтобы проверить зону доставки. — [Клиент отправляет геолокацию] — Отлично! Вы находитесь в зоне доставки. Стоимость: 250 рублей, время: 40-60 минут. Уточните полный адрес (квартира, этаж, код домофона).
Сценарий 2: Ближайший офис или пункт выдачи
Для розничных сетей, медицинских центров, банков, аптек, пунктов выдачи — показать ближайшую точку быстро и понятно.
Бот запрашивает геолокацию, находит в базе данных ближайшие точки (обычно 3-5 штук), показывает их с расстоянием, режимом работы и ссылкой на Яндекс.Карты для построения маршрута.
| Данные по каждой точке | Источник |
|---|---|
| Название и адрес | База данных бота |
| Расстояние | Расчёт по координатам (формула Хаверсина) |
| Режим работы | База данных, обновляется вручную |
| Телефон | База данных |
| Ссылка на карту | Яндекс.Карты или 2GIS (deeplink) |
| Загруженность (опционально) | Интеграция с внутренней системой |
Ссылка на карту формируется автоматически: https://yandex.ru/maps/?pt=37.617,55.755&z=16 — клиент нажимает и видит точку на карте с маршрутом от своего текущего местоположения.
Сценарий 3: Показ точек на карте
Telegram позволяет отправлять в чат статические метки на карте (venue). Это не интерактивная карта, но достаточно для большинства случаев.
Бот отправляет несколько меток последовательно: каждая — это адрес с названием, который кликается и открывается в Яндекс.Картах. Для небольшой сети из 5-10 точек это работает отлично.
Для больших сетей (50+ точек) лучше показывать только 3-5 ближайших, а не все сразу — информационная перегрузка снижает конверсию.
Сценарий 4: Ограничение географии работы
Некоторые бизнесы работают только в определённом городе или регионе. Геолокация позволяет это проверять автоматически.
Клиент начинает оформление заказа → бот запрашивает геолокацию → если клиент за пределами зоны обслуживания → вежливый отказ с объяснением. Не надо, чтобы менеджер тратил время на обработку нерелевантных заявок.
Это особенно актуально для:
- Доставки собственными курьерами (без аутсорса)
- Выездных услуг (замер, установка, ремонт)
- Специальных тарифов для конкретного региона
UX-нюансы: что делать, если пользователь отказал в доступе
Часть пользователей не готова делиться геолокацией — из соображений приватности или по привычке. Это нужно обрабатывать корректно.
Не делайте геолокацию обязательной там, где можно обойтись. Если клиент может ввести адрес текстом — дайте такую возможность. «Поделитесь геолокацией для автозаполнения адреса, или введите адрес вручную».
Объясняйте, зачем нужна геолокация. «Нам нужны ваши координаты, чтобы рассчитать стоимость и время доставки» — понятная причина. Без объяснения отказов больше.
Предложите альтернативу. Если клиент отказал — переключитесь на текстовый ввод адреса. Не «тупик», а другой путь к той же цели.
Не запрашивайте геолокацию повторно в той же сессии. Если отказал — принял решение. Повторный запрос воспринимается как давление.
Алгоритм обработки ситуации с отказом:
- Клиент не поделился геолокацией
- Бот: «Понятно! Тогда введите ваш адрес в формате: город, улица, дом»
- Клиент вводит адрес текстом
- Бот проверяет по базе зон обслуживания и продолжает
Интеграция с Яндекс.Картами и 2GIS
Оба сервиса предоставляют API для обратного геокодирования (координаты → адрес) и прямого геокодирования (адрес → координаты).
Обратный геокодинг используется, когда клиент отправил геолокацию: бот запрашивает Яндекс.Карты и получает красивый читаемый адрес («Москва, ул. Пушкина, 15»), который показывает клиенту для подтверждения.
Прямой геокодинг используется, когда клиент ввёл адрес текстом: бот преобразует текст в координаты и может проверить зону доставки или найти ближайший офис.
Яндекс.Карты API: бесплатно до 1 000 запросов в день, дальше 1.20 рублей за запрос. Для большинства малых бизнесов бесплатного лимита хватает. 2GIS API: аналогичные условия, часто точнее для малых городов России.
| Параметр | Яндекс.Карты | 2GIS |
|---|---|---|
| Бесплатный лимит/день | 1 000 запросов | 25 000 запросов |
| Точность в Москве/СПб | Высокая | Высокая |
| Точность в малых городах | Средняя | Высокая |
| Актуальность данных | Хорошая | Отличная (собственная база) |
| Стоимость сверх лимита | 1.20 руб/запрос | 0.50 руб/запрос |
Для большинства российских бизнесов 2GIS предпочтительнее благодаря точности данных по малым городам и более щедрому бесплатному тарифу.
Безопасность и приватность
Геолокация — персональные данные по 152-ФЗ. Несколько обязательных требований:
- Получить явное согласие на обработку ПДн (обычно при первом запуске бота).
- Не хранить геолокацию дольше, чем необходимо для выполнения конкретного заказа.
- Не передавать геолокацию третьим лицам без согласия пользователя.
- Указать в политике конфиденциальности, что собираете геолокацию и зачем.
Реализовать это несложно: бот хранит координаты только в рамках активной сессии или конкретного заказа. После завершения — только текстовый адрес, координаты удаляются.
Геолокация в боте — это не экзотика. Это стандартная функциональность, которую пользователи ожидают от любого сервиса с территориальной привязкой. Реализуется за 1-2 недели разработки и сразу снижает трение при оформлении заказа.