optimize

Para usar la optimización al planificar la ruta y distribuir los pedidos, use 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>,...}
}

Parámetros

Los parámetros obligatorios están marcados con un asterisco (*).

Parámetro Descripción
itemId* ID del recurso.
orders* Array de pedidos que se optimizan (índices o JSON de los pedidos separados por comas).
warehouses Array de almacenes.
flags* Flags de optimización.
gis Configuración de GIS.
busyRoutes Periodo de ocupación.
tf Hora de inicio del periodo de ocupación.
tt Hora de finalización del periodo de ocupación.
pf Ubicación de inicio del periodo de ocupación: ID o JSON del pedido.
pt Ubicación de finalización del periodo de ocupación: ID o JSON del pedido.
provider Fuente de mapas: 0 - ninguna, 1 - Gurtam Maps (por defecto), 2 - Google.
mode Medio de transporte: driving, walking, bicycling o transit (solo para Google).
avoid Restricciones de la ruta: tolls, highways, ferries y/o indoor (solo para Google).
departure_time Hora de salida planificada (solo para Google).
traffic_model Supuestos de tráfico: best guess, pessimistic u optimistic (solo para Google).
transit_mode Medios de transporte público preferidos: bus, subway, train, tram y/o rail (solo para Google).
transit_routing_preference Preferencias para las solicitudes de rutas en transporte público (solo para Google).
addPoints Devolver un track en la respuesta: 1 - sí, 0 - no.
speed Velocidad que se debe usar para la optimización, km/h (60 por defecto).
units Array de unidades.
priority Secuencia de pedidos: {índice de la unidad:{índice del pedido:índice esperado del pedido en la ruta}}
Si el índice es igual a -1, el pedido pasa a ser el último de la ruta.
criterions Criterios de finalización de la ruta:
  • max_mileage. Kilometraje máximo, m.
  • max_duration. Duración máxima, s.
  • max_order_count. Cantidad máxima de pedidos.
  • max_idling. Tiempo máximo de inactividad entre pedidos, s.
preference Prioridad del pedido en la ruta.

Flags

Flag Descripción
0x1 Optimizar según el horario de los pedidos. Se usan los parámetros tf y tt del pedido.
0x2 Optimizar según la duración de la ejecución de todos los pedidos.
0x20 Optimizar según la capacidad de carga (peso).
0x40 Optimizar según la capacidad efectiva (volumen).
0x80 Optimizar solo los pedidos con tt > hora actual. Si tf < hora actual, entonces tf = hora actual.

Si se superan los criterios:

0x100 La ruta se finaliza.
0x200 Se visita un almacén intermedio.
0x300 La ruta se divide en varias rutas.

Respuesta

Copied!
{
	"1":{						  /* optimización para la primera unidad */
		"orders":[
				{
					"ml":<uint>,	/* kilometraje */
					"tm":<uint>,	/* hora de visita del área del pedido */
					"id":<uint>	/* índice del pedido en el array enviado en la solicitud (empieza en 0)  */
				},
				{
					"ml":<uint>,	/* kilometraje */
					"tm":<uint>,	/* hora de visita del área del pedido */
					"id":<uint>	/* índice del pedido en el array enviado en la solicitud (empieza en 0)  */
				}
		]
	},
	"2":{						  /* optimización para la segunda unidad (si la cantidad de unidades es mayor que uno) */
		"orders":[
				{
					"ml":<uint>,	/* kilometraje */
					"tm":<uint>,	/* hora de visita del área del pedido */
					"id":<uint>	/* índice del pedido en el array enviado en la solicitud (empieza en 0)  */
				},
				{
					"ml":<uint>,	/* kilometraje */
					"tm":<uint>,	/* hora de visita del área del pedido */
					"id":<uint>	/* índice del pedido en el array enviado en la solicitud (empieza en 0)  */
				}
		]
	},
	...,						  /* optimización para las demás unidades (si la cantidad de unidades es mayor que dos) */
	"success":<bool>				/* estado de la optimización: 
                                          1 - correcta (existe una solución que cumple todos los requisitos),
                                          0 - fallida */
}

Códigos de error

Código de error Descripción
7 itemId no válido.
6 Error interno.
4 Error lógico. Para obtener más información, consulte el motivo en la respuesta.

Si nota un error en el texto, por favor resáltelo y presione Ctrl+Intro.