Сценарии использования

Простое оповещение о геозоне для логистического приложения

Полноценная платформа отслеживания автопарка была избыточной для небольшой логистической компании ради одной конкретной вещи, о которой постоянно просили её диспетчеры: простого уведомления в момент, когда грузовик прибывает на определённый важный объект клиента или покидает его. Это было полезно клиентам, которые хотели заранее знать о прибытии доставки, и самой компании для учёта того, когда доставка действительно достигла места назначения, вместо того чтобы полагаться на отчёт водителя в конце дня.

Составные части для этого были проще, чем полноценная платформа отслеживания, и у компании уже поступали GPS-координаты с грузовиков через мобильные устройства водителей. Ей был нужен способ задать объект клиента как границу и проверять поступающие координаты относительно неё, а также способ понять, что означает исходная координата, когда требовалось понятное человеку описание, а не пара чисел.

Для каждого важного объекта клиента компания геокодировала его адрес через /v1/forward, чтобы получить фиксированную опорную координату, а затем задавала вокруг этой точки небольшой радиус, обозначающий границу прибытия. Это была простая проверка радиуса, а не сложная граница произвольной формы, поскольку радиуса было достаточно для реальных объектов компании, в основном складов и погрузочных площадок без необычных или неправильных границ. По мере поступления GPS-координат грузовика собственный сервер компании вычислял расстояние от каждого отслеживаемого грузовика до опорной точки каждого нужного объекта, отправляя оповещение о прибытии, когда грузовик пересекал границу радиуса внутрь, и оповещение об отъезде, когда он снова выходил за неё.

/v1/reverse играл вспомогательную роль для человеческой стороны этой системы: когда диспетчеру нужно было разобрать оповещение или выяснить неожиданную картину, например грузовик, который будто бы уехал с объекта и сразу вернулся, исходная координата, преобразованная обратно в понятный адрес и описание места, заметно ускоряла разбор по сравнению с работой с парой чисел на карте, которую приходилось вручную расшифровывать.

Компания намеренно сохранила простоту и не стала двигаться к полноценной платформе оптимизации маршрутов или управления автопарком, поскольку решаемая ею конкретная задача, оповещения о прибытии и отъезде для определённого списка важных объектов, не требовала большей части того, что предлагает крупная платформа. Реализация только необходимого позволила сохранить проект достаточно небольшим, чтобы быстро его запустить и поддерживать без отдельной команды разработчиков.

Клиенты, получавшие оповещения о прибытии, отмечали реальную пользу от заблаговременного уведомления, особенно те, у кого на объекте мало персонала и кому нужно несколько минут, чтобы подготовить человека к приёму доставки, а не быть застигнутыми врасплох. Это небольшое операционное улучшение для клиента обошлось логистической компании сравнительно недорого.

Геокодирование объектов было разовыми затратами на настройку, небольшими с учётом того, как мало приоритетных объектов требовали такой обработки, а использование обратного геокодирования зависело от того, как часто диспетчеру нужно было разбирать конкретное оповещение: лёгкая и эпизодическая нагрузка, а не постоянная. И то и другое для компании такого размера с запасом укладывалось в бесплатную дневную квоту.

Документация по обоим эндпоинтам находится по адресам /docs/forward-geocoding/ и /docs/reverse-geocoding/.