Геоданные в реальном времени. Для приложений, где каждая секунда на счету.
Геолокация для критичных сценариев
- Real-time трекингWebSocket-поток координат через Socket.IO с задержкой менее 500мс. Диспетчер видит каждый экипаж на карте в живом режиме — без перезагрузок и polling.
- Адресный поиск и геокодированиеАвтокомплит адресов, прямое геокодирование (адрес -> координаты) и обратное (координаты -> адрес). Работает на локальных данных, не зависит от внешних API.
- Кластеризация точекУмная кластеризация при сотнях объектов на карте. Производительность не падает — viewport остаётся отзывчивым даже в диспетчерских панелях.
- ГеофенсингЗоны покрытия, уведомления о входе и выходе из полигонов. Настраиваемые границы для каждого города, района и зоны обслуживания.
- История маршрутовВоспроизведение маршрута с пошаговым timeline перемещений. Незаменимо для разбора инцидентов, контроля качества и отчётности.
- SOS-режимы картыРежимы follow_customer и follow_assigned для экстренных вызовов. Камера карты автоматически следует за нужным участником инцидента в реальном времени.
Диспетчерская панель — live
Карта экипажей — real-time
Алматы, диспетчерский режим
Сценарии использования
Диспетчерская консоль охраны
B2BПолная картина в реальном времени. Все экипажи, все инциденты, все зоны на одном экране. Диспетчер принимает решения за секунды, а не минуты.
SOS-мониторинг
КритичныйАвтоматическое слежение за клиентом и назначенным экипажем. Режимы follow_customer и follow_assigned переключаются без лагов.
Клиентское приложение
B2CКлиент видит движение охранника или консультанта к себе на карте. Маршрут, расчётное время прибытия, уведомление о прибытии.
Один composable — вся геолокация
// Весь real-time трекинг — в одном composable
const {
crews, // reactive массив позиций экипажей
incidents, // активные инциденты с координатами
followCrewId, // ref для follow_assigned режима
geocode, // (address) => Promise<LatLng>
isConnected // статус Socket.IO
} = useQorMap({
orderId: props.orderId,
mode: 'dispatcher',
autoFollow: true,
clusterize: true
})
// Данные обновляются через WebSocket автоматически.
// Никакого polling — только push.