Чтобы воспользоваться оптимизацией выполнения заявок, используйте order/optimize:
svc=order/optimize¶ms={"itemId":<long>, "orders":[<uint>,{JSON},...], "warehouses":[<uint>], "units":[<uint>], "flags":<uint>, "gis":{ "provider":<uint>, "addPoints":<uint>, "speed":<uint>, "mode":<text>, "avoid":<text>, "departure_time":<uint>, "traffic_model":<text>, "transit_mode":<text>, "transit_routing_preference":<text> }, "busyRoutes":{ "<uint>":[ { "tf":<uint>, "tt":<uint>, "pf":{<uint> || {JSON}}, "pt":{<uint> || {JSON} }, ... ] }, "priority":{<uint>:{<uint>:<uint>},...}, "criterions":{<text>:<uint>,...}, "preference":{<uint>:<uint>,...} // DEPRECATED }
Название | Описание |
---|---|
itemId | id ресурса |
orders | массив оптимизируемых заявок (индексы/JSON заявок через запятую) |
warehouses | массив складов |
units | массив объектов, которые будут выполнять заявки |
flags | флаги оптимизации |
gis | настройки карт |
busyRoutes | периоды занятости, далее индекс |
tf | время начала периода занятости |
tt | время конца периода занятости |
pf | точка начала периода занятости: id или JSON заявки |
pt | точка конца периода занятости: id или JSON заявки |
provider | источник данных для оптимизации: 0 - нет, 1 - gurtam maps(по умолчанию), 2 -google |
mode | транспорт: driving, walking, bicycling или transit (только для provider google) |
avoid | ограничения: tolls, highways, ferries и/или indoor (только для provider google) |
departure_time | желаемое время отправления (только для provider google) |
traffic_model | предположение: best_guess, pessimistic или optimistic (только для provider google) |
transit_mode | предпочитаемые виды транспорта: bus, subway, train, tram и/или rail (только для provider google) |
transit_routing_preference | предпочтения маршрутов на общественном транспорте (только для provider google) |
addPoints | вернуть в ответе трек: 1 - да, 0 - нет |
speed | скорость для оптимизации, км/ч (60 по умолчанию) |
priority | порядок заявок: {индекс объекта:{индекс заявки: ожидаемая позиция заявки в маршруте}} (позиция равная -1 будет считаться как всегда последняя) |
criterions | критерии завершения маршрута: max_mileage - максимальный пробег, м; max_duration - максимальная длительность, сек; max_order_count - максимальное количество заявок; max_idling - максимальное время простоя между заявками, сек; split_intervals - если 1, то делить по интервалам (если время выполнения заявки с разгрузкой и переездом, не попадает в коридор следующей) |
preference | DEPRECATED: приоритет заявки в маршруте, если не задать, то берётся из JSON заявки {«индекс заявки»:«приоритет»,…} |
Формат JSON заявки как в запросе Работа с заявками.
Подробнее о настройках оптимизации с использованием Google. Google
Флаг | Описание |
---|---|
0x1 | оптимизировать по расписанию заявки (используются параметры tf и tt) |
0x2 | оптимизировать по времени выполнения всех заявки |
0x20 | учитывать грузоподъемность объекта |
0x40 | учитывать вместимость объекта по объёму |
0x80 | учитывать текущее время |
В случае, если превышены лимиты (criterions): | |
0x100 | маршрут завершается |
0x200 | посещается склад перезагрузки |
0x300 | маршрут разделяется на несколько |
0x400 | разделить на независимые маршруты |
0x1000 | отключить оптимизацию |
0x2000 | расчет предварительного расстояния |
{ "1":{ /* оптимизация для первого объекта */ "orders":[ { "ml":<uint>, /* пробег */ "tm":<uint>, /* время посещения области заявки */ "id":<uint> /* индекс заявки в переданном в запросе массиве (нумерация от 0) */ }, { "ml":<uint>, /* пробег */ "tm":<uint>, /* время посещения области заявки */ "id":<uint> /* индекс заявки в переданном в запросе массиве (нумерация от 0) */ } ] }, "2":{ /* оптимизация для второго объекта (если заданное число объектов больше одного) */ "orders":[ { "ml":<uint>, /* пробег */ "tm":<uint>, /* время посещения области заявки */ "id":<uint> /* индекс заявки в переданном в запросе массиве (нумерация от 0) */ }, { "ml":<uint>, /* пробег */ "tm":<uint>, /* время посещения области заявки */ "id":<uint> /* индекс заявки в переданном в запросе массиве (нумерация от 0) */ } ] }, ..., /* оптимизация для других объектов (если задано большее число объектов) */ "success":<bool> /* статус оптимизации: 1 - успех (есть решение для всех заданных требований), 0 - неудача */ }
Если на объект назначены только заявки склада(флаг 0x4), то он не будет фигурировать в ответе.
Если маршрут разделился на несколько, то в ответе будет массив маршрутов.
«p»:<text> - маршрут заявки, google polyline encoding формат