Учет геозон
Геозоны можно создавать в интерфейсе и затем использовать при планировании через Excel или API. Также геозоны можно задавать непосредственно в запросе API.
Игнорирование зон
Включение опции options.ignore_zones позволяет отменить все ограничения, связанные с геозонами. Подробнее см. Геозоны и Несовместимые зоны.
"options": {
"ignore_zones": true
}
При планировании через Excel опция ignore_zones задается в интерфейсе Планирования на вкладке Настройки → Учитывать зоны. Значению поля ignore_zones = true соответствует нажатая кнопка Нет.
Несовместимые зоны
При планировании может потребоваться распределить заказы по разным рейсам:
-
Из-за особенностей дорог. Например, заказы, находящиеся на разных берегах реки или по разным сторонам железной дороги, лучше не выполнять в одном рейсе, чтобы сократить использование мостов и переездов.
-
Из-за особенностей тарификации. Например, чтобы разделить заказы по направлениям.
В таких случаях можно использовать геозоны и указывать их несовместимость на листе Options в поле incompatible_zones.N, где N — номер набора несовместимых зон (наборов может быть несколько, нумерация начинается с 0).
Заказы, относящиеся к несовместимым геозонам, не могут выполняться в одном рейсе. При планировании заказы разделяются по разным рейсам, если у них есть по крайней мере одна несовместимая зона.
"options": {
"incompatible_zones": [
[
"zone2",
"zone3"
]
]
}
Несовместимые зоны можно также задавать для отдельных курьеров.
Пример 1
В примере заданы несовместимые геозоны zone1 и zone2, заказы в которых нельзя выполнять в одном рейсе. При этом заказ 2 находится внутри zone1, заказ 4 внутри zone2. Все заказы обслуживает один автомобиль.
В результате автомобиль выполняет два рейса.
Пример Excel ⋅ Запрос API (JSON) ⋅ Ответ API ⋅ Открыть на карте
Пример 2
Те же условия, что в примере 1, но в интерфейсе при планировании включено Настройки → Учитывать зоны → Нет.
В результате автомобиль выполняет все заказы за один рейс.
Пример Excel ⋅ Запрос API (JSON) ⋅ Ответ API ⋅ Открыть на карте
Управление совместимостью геозон
Вы можете управлять совместимостью геозон — запретить доставку в несовместимые геозоны, но сделать исключения для определенных комбинаций. Например, это полезно, когда курьерам в целом запрещено перемещаться между отдаленными районами, но разрешено посещать соседние, которые связанны одной магистралью.
Для этого используйте пару параметров:
-
options.incompatible_zones— задает список зон, которые нельзя посещать в одном маршруте всем курьерам; -
options.compatible_zones— задает список зон, которые можно совмещать, даже если они попали в список несовместимых.
Параметры работают только в паре — options.compatible_zones отменяет ограничения из options.incompatible_zones.
Список таких зон можно задать не только для всего решения, но и для конкретного курьера — параметрами vehicles.incompatible_zones и vehicles.compatible_zones.
Как это работает
-
В
options.incompatible_zonesперечислите зоны, которые несовместимы друг с другом. -
В
options.compatible_zonesукажите совместимые зоны. -
Алгоритм сначала применит запрет, а затем «отменит» его для комбинаций из списка совместимых.
Например, нельзя посещать в одном рейсе удаленные районы: Север, Юг, Запад и Восток. При этом в качестве исключения можно совместить Север и Восток, так как их связывает скоростная магистраль.
Пример
Курьеры доставляют заказы в разные районы города. Эти районы заданы геозонами: Krylatskoye, Strogino, Tushino, Mitino и Chertanovo.
Чтобы исключить долгие переезды, все 5 районов несовместимы между собой. При этом есть совместимые геозоны:
-
соседние районы —
MitinoиTushino; -
быстрый маршрут по МКАД —
KrylatskoyeиStrogino.
Для этого:
-
В
options.incompatible_zonesуказаны несовместимые геозоны:Krylatskoye,Strogino,Tushino,MitinoиChertanovo. -
В
options.compatible_zonesуказаны геозоны, которые можно посетить:-
MitinoиTushino. -
KrylatskoyeиStrogino.
-
В результате планирования:
-
район
Chertanovoне попадает в маршруты с другими районами; -
заказы из
MitinoиTushinoобъединены в один маршрут; -
заказы из
KrylatskoyeиStroginoобъединены в один маршрут.
Запрос API (JSON) ⋅ Ответ API ⋅ Открыть на карте
Исключенные зоны
Компания может запретить курьерам проезжать через определенные геозоны. Это могут быть, например, дороги с высокой аварийностью в горной местности, опасные мосты, переправы и т. п. Такие зоны можно определить в интерфейсе или через API и при планировании перечислить их названия через запятую на листе Options в поле avoid_zones.
Различие между запрещенными и исключенными зонами
Геозоны, в которых курьерам запрещено выполнять заказы, указываются на листе Vehicles в поле forbidden_zones, см. Определение геозон. Но проезжать через эти зоны курьеры могут. Зоны, перечисленные на листе Options в поле avoid_zones, запрещены даже для проезда курьеров.
Для определения исключенных зон через интерфейс или API можно использовать в сумме не больше 300 точек. Чтобы соблюсти лимит, рекомендуется:
-
задавать геозоны в форме треугольника;
-
выделять не всю зону, а только контрольно-пропускные пункты и въезды.
Например, чтобы запретить движение по мосту, не нужно выделять территорию всего моста. Достаточно добавить геозону треугольной формы на въезд.
Скриншот

Важно
Рекомендуем проектировать исключенные зоны так, чтобы они пересекали как можно меньше дорог. При подсчете сервис учитывает суммарное количество дорог, попадающих в зоны из avoid_zones, а также пересечения с платными дорогами при включенном объезде платных участков.
В случае превышения технического лимита пересечений маршруты не построятся.
Пример 1
Курьер выполняет 10 заказов за 2 смены. Его маршрут пересекает мост Лужники. В файле планирования на листе Options в поле avoid_zones исключенные зоны не указаны.
Пример Excel ⋅ Запрос API (JSON) ⋅ Ответ API ⋅ Открыть на карте
Пример 2
Те же условия, что в примере 1, но в файле планирования на листе Options в поле avoid_zones указана исключенная зона Bridge. На карте она обозначена с помощью трех точек. В интерфейсе планирования включена опция Учитывать геозоны.
В результате маршрут курьера строится так, чтобы избежать зоны Bridge.
Пример Excel ⋅ Запрос API (JSON) ⋅ Ответ API ⋅ Открыть на карте
Распределение проблемных заказов
Если нельзя проложить маршрут к заказу по дорогам, не проезжая через исключенные геозоны, по умолчанию заказ все равно будет включен в запланированный маршрут, но путь к нему будет проложен «по воздуху». Длина отрезка маршрута будет считаться равной пятикратному расстоянию до точки заказа по воздуху. Чтобы избежать такого планирования, укажите опцию haversine_fallback равной false (по умолчанию true). В этом случае такие заказы будут попадать в нераспределенные.
Пример 1
Курьер выполняет 5 заказов. Заказ 5 нужно доставить на остров. Маршрут проложен через мост. Длина маршрута составила 46,08 км. Длина пути до Заказа 5 — 5,78 км, путь к заказу проложен по мосту, это видно в режиме «по дорогам».
Пример Excel ⋅ Запрос API (JSON) ⋅ Ответ API ⋅ Открыть на карте
Пример 2
То же, что в примере 1, но все мосты до острова определены как исключенные зоны. По умолчанию haversine_fallback равен true, и путь к Заказу 5 проложен «по воздуху». Длина маршрута составила 57,64 км, длина пути до Заказа 5 — 10,35 км.
Пример Excel ⋅ Запрос API (JSON) ⋅ Ответ API ⋅ Открыть на карте
Пример 3
То же, что в примере 2, но параметр haversine_fallback равен false. Заказ 5 стал нераспределенным.
Пример Excel ⋅ Запрос API (JSON) ⋅ Ответ API ⋅ Открыть на карте