Оптимизировать выполнение заявок

Чтобы воспользоваться оптимизацией выполнения заявок, используйте order/optimize:

svc=order/optimize&params={"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>,...}}

Параметры

Название Описание
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 приоритет заявки в маршруте, если не задать, то берётся из 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), то он не будет фигурировать в ответе.
:!: Если маршрут разделился на несколько, то в ответе будет массив маршрутов.

Follow us on Facebook Gurtam Wialon Twitter Gurtam Wialon info@gurtam.com   |   Copyright © 2002-2019 Gurtam