Domyślnie metoda biblioteki Routes computeRoutes oblicza trasę przez wiele przystanków, zwanych punktami pośrednimi, w kolejności, w jakiej je podasz.
Interfejs Routes API może zoptymalizować podaną trasę, zmieniając kolejność przystanków na bardziej efektywną. Optymalizacja punktów pośrednich optymalizuje czas podróży, ale przy podejmowaniu decyzji o tym, która trasa jest najbardziej efektywna, uwzględnia też inne czynniki, takie jak odległość i liczba zakrętów.
Optymalizacja punktów na trasie
- Sprawdź, czy żaden z punktów na trasie nie ma ustawionego parametru
vianatrue. - Sprawdź, czy nagłówek
routingPreferencenie jest ustawiony naTRAFFIC_AWARE_OPTIMAL. - Ustaw wartość
optimizeWaypointOrdernatrue. - W masce pola określ pole
optimizedIntermediateWaypointIndices.
Jak optymalizowana jest kolejność punktów na trasie
Oto jak interfejs Routes API optymalizuje kolejność punktów na trasie:
- Automatycznie indeksuje punkty pośrednie na podstawie kolejności, w jakiej podajesz je w żądaniu, zaczynając od 0.
- Optymalizuje kolejność punktów pośrednich, używając numerów indeksów przypisanych do nich w żądaniu.
- Zwraca zoptymalizowaną kolejność punktów pośrednich w odpowiedzi w sekcji
optimizedIntermediateWaypointIndices.
Przykładowe żądanie
Poniższy przykład pokazuje, jak poprosić o zoptymalizowane punkty pośrednie na trasie z Adelaide w Australii Południowej do każdego z głównych regionów winiarskich w Australii Południowej, a następnie powrotu do Adelaide.
const request = { origin: 'Adelaide, SA', destination: 'Adelaide, SA', intermediates: [ {location: "Barossa+Valley,SA"}, {location: "Clare,SA"}, {location: "Coonawarra,SA"}, {location: "McLaren+Vale,SA"}, ], travelMode: 'DRIVING', optimizeWaypointOrder: true, fields: ['path','optimizedIntermediateWaypointIndices'], };
Przykładowa odpowiedź
Odpowiedź zawieraoptimizedIntermediateWaypointIndices.
Response: [ { "optimizedIntermediateWaypointIndices": [ 3, // McLaren+Vale, SA 2, // Coonawarra, SA 0, // Barossa+Valley, SA 1 // Clare, SA ], ...