optimize

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

Copied!
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}
				   },
				   ...
			       ]
			   },
			   "addPoints":<bool>,
			   "priority":{<uint>:{<uint>:<uint>},...},
			   "criterions":{"<text>":<uint>,...},
			   "preference":{<uint>:<uint>,...}
}

Параметры

Обязательные параметры отмечены звездочкой (*).

ПараметрОписание

itemId*

ID ресурса.

orders*

Массив оптимизируемых заявок (индексы/JSON заявок через запятую).

warehouses

Массив складов.

flags*

Флаги оптимизации.

gis

Настройки GIS.

busyRoutes

Период занятости.

tf

Время начала периода занятости.

tt

Время конца периода занятости.

pf

Точка начала периода занятости: ID или JSON заявки.

pt

Точка конца периода занятости: ID или JSON заявки.

provider

Источник данных для оптимизации:

  • нет;
  • Gurtam Maps (по умолчанию);
  • Google.

mode

Способ передвижения (только для Google):

  • driving — на автомобиле;
  • walking — пешком;
  • bicycling — на велосипеде;
  • transit — на общественном транспорте.

avoid

Ограничения (только для Google):

  • tolls  платные дороги;
  • highways — шоссе;
  • ferries — паромные переправы;
  • indoor — помещения.

departure_time

Запланированное время отправления (только для Google).

traffic_model

Модель движения (только для Google):

  • best guess — сбалансированная;
  • optimistic — оптимистичная;
  • pessimistic — пессимистичная.

transit_mode

Предпочитаемые виды транспорта (только для Google):

  • bus — автобус;
  • subway — метро;
  • train — поезд;
  • tram — трамвай;
  • rail — железнодорожный транспорт.

transit_routing_preference

Приоритет маршрутов на общественном транспорте (только для Google).

addPoints

Вернуть трек в ответе: 1  да, 0  нет.

speed

Скорость, которая должна использоваться для оптимизации, км/ч (по умолчанию 60).

units

Массив объектов.

priority

Порядок заявок: {индекс объекта:{индекс заявки: ожидаемое положение заявки в маршруте}} 

Заявка с положением равным -1 всегда считается последней в маршруте.

criterions

Критерии завершения маршрута:

  • max_mileage — максимальный пробег, м;
  • max_duration — максимальная длительность, с;
  • max_order_count — максимальное количество заявок;
  • max_idling — максимальное время простоя между заявками, с;

preference

Приоритет заявки в маршруте.

Флаги

ФлагОписание

0x1

Оптимизировать по расписанию заявки. Используются параметры tf и tt.

0x2

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

0x20

Оптимизировать по грузоподъемности объекта.

0x40

Оптимизировать по полезному объему объекта.

0x80

Оптимизировать только заявки, у которых tt больше текущего времени. Если tf меньше текущего времени, значит tf = текущее время.

Если лимиты превышены:

0x100

Маршрут завершается.

0x200

Посещается промежуточный склад.

0x300

Маршрут разделяется на несколько.

Возвращаемый результат

Copied!
{
	"1":{						  /* оптимизация для первого объекта */
		"orders":[
				{
					"ml":<uint>,	/* пробег */
					"tm":<uint>,	/* время посещения области заявки */
					"id":<uint>	/* индекс заявки в переданном в запросе массиве (нумерация от 0) */
				},
				{
					"ml":<uint>,	/* пробег */
					"tm":<uint>,	/* время посещения области заявки */
					"id":<uint>	/* индекс заявки в переданном в запросе массиве (нумерация от 0) */
				}
		]
	},
	"2":{						  /* optimization for the second unit (if the number of units is greater than one) */
		"orders":[
				{
					"ml":<uint>,	/* пробег */
					"tm":<uint>,	/* время посещения области заявки */
					"id":<uint>	/* индекс заявки в переданном в запросе массиве (нумерация от 0)  */
				},
				{
					"ml":<uint>,	/* пробег */
					"tm":<uint>,	/* время посещения области заявки */
					"id":<uint>	/* индекс заявки в переданном в запросе массиве (нумерация от 0) */
				}
		]
	},
	...,						  /* оптимизация для других объектов (если количество объектов больше 1) */
	"success":<bool>				/* статус оптимизации: 
                                          1 — выполнена успешно (есть решение, которое соответстует всем требованиям),
                                          0 — не удалось выполнить */
}

Коды ошибок

Код ошибкиОписание
7Невалидный параметр itemId.
6Внутренняя ошибка.
4Логическая ошибка. Причина указана в ответе.
Скачать файл PDF
Скачать документ Word

Смотрите также