Чтобы воспользоваться оптимизацией выполнения заявок, используйте 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 | маршрут разделяется на несколько |
{ "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), то он не будет фигурировать в ответе.
Если маршрут разделился на несколько, то в ответе будет массив маршрутов.
|