Otimização de rotas
Indique-nos as paragens e os estafetas; receba quem vai aonde, por que ordem e a que horas chega.
Nesta página
Um estafeta tem doze encomendas para esta tarde; ou três estafetas dividem quarenta. A otimização de rotas decide quem leva o quê, por que ordem, com o menor tempo total na estrada, sem sobrecarregar ninguém.
Planear um lote
cURL
curl -X POST "https://nways.ng/maps/v1/routes/optimize?key=A_SUA_CHAVE_API" \
-H "Content-Type: application/json" \
-d '{"mode": "dispatch", "vehicles": [{"id": "bike-17", "start": {"lat": 6.5965, "lng": 3.3421}, "capacity": 8}], "stops": [{"id": "order-1", "location": {"lat": 6.6018, "lng": 3.3515}, "serviceS": 120}, {"id": "order-2", "location": {"lat": 6.6107, "lng": 3.3589}, "serviceS": 120}, {"id": "order-3", "location": {"lat": 6.5934, "lng": 3.3602}, "serviceS": 120}]}'JavaScript
import { createClient } from '@nways/maps'
const nways = createClient({ key: 'A_SUA_CHAVE_API' })
const plan = await nways.optimize({
mode: 'dispatch',
vehicles: [{ id: 'bike-17', start: { lat: 6.5965, lng: 3.3421 }, capacity: 8 }],
stops: [
{ id: 'order-1', location: { lat: 6.6018, lng: 3.3515 }, serviceS: 120 },
{ id: 'order-2', location: { lat: 6.6107, lng: 3.3589 }, serviceS: 120 },
{ id: 'order-3', location: { lat: 6.5934, lng: 3.3602 }, serviceS: 120 },
],
})
for (const r of plan.routes) console.log(r.vehicle, r.stops.join(' → '), Math.round(r.durationS / 60), 'min')O pedido
| Campo | Descrição |
|---|---|
stops | Obrigatório. De 1 a 50 paragens, cada uma com o seu id, a sua location (um ponto, { postcode }, { ghanaPost } ou { plusCode }), a sua demand (o espaço que ocupa, 1 por omissão) e serviceS (os segundos passados no local, até 4 horas). |
vehicles | Obrigatório. De 1 a 5 veículos, cada um com um id, um start, um end opcional (caso contrário, termina na última paragem) e uma capacity (0 para sem limite). |
mode | drive (por omissão), van, okada, keke e danfo (que respeitam as suas proibições, como em Percursos), motorbike e dispatch (motas de estafetas: só se aplicam as proibições a todas as motas), walk ou bicycle. |
geometry | false para obter apenas a ordem e os tempos, sem o percurso de cada veículo. |
lang | en ou fr, para as instruções dos percursos. |
A resposta
routes: para cada veículo usado, as suasstopspela ordem de passagem,arrivalsS(os segundos desde a partida até cada paragem),durationS,distanceM,loade o seuroute(como em Percursos), exceto segeometryforfalse.unassigned: as paragens que nenhum veículo pôde levar (acima de todas as capacidades, ou numa zona proibida para o modo; essas estão também emnotAllowed, com a proibição).durationS: o tempo de condução e de serviço de todo o plano.
A resposta é um bom plano encontrado em segundos, não um plano provado como o melhor. Referência