Domyślnie metoda interfejsu Routes API Compute Routes 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 uwzględnia też inne czynniki, takie jak odległość i liczba zakrętów, aby określić, która trasa jest najbardziej efektywna.
Optymalizacja punktów pośrednich
- Upewnij się, że żaden z punktów na trasie nie ma ustawionej wartości - viana- true, np.- {"address": "Clare,SA", "via": true}. Więcej informacji o pośrednich punktach trasy znajdziesz w artykule Określanie pośrednich punktów trasy.
- Sprawdź, czy nagłówek - routing_preferencenie jest ustawiony na- TRAFFIC_AWARE_OPTIMAL.
- Ustaw wartość - optimize_waypoint_orderna- true. Na przykład:- "optimizeWaypointOrder": "true", 
- Określ pole - routes.optimizedIntermediateWaypointIndexw masce pola:- REST - -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex - RPC - const (fieldMask = "routes.optimizedIntermediateWaypointIndex") 
Optymalizacja kolejności punktów
Oto jak interfejs Routes API optymalizuje kolejność punktów pośrednich 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 obiekcie - routesw polu- waypoint_orderw sekcji- routes.optimizedIntermediateWaypointIndex.
Przykład
To żądanie dotyczy optymalizacji trasy 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.
curl -X POST -H 'content-type: application/json' -d ' { "origin": { "address": "Adelaide,SA" }, "destination": { "address": "Adelaide,SA" }, "intermediates": [ {"address": "Barossa+Valley,SA"}, {"address": "Clare,SA"}, {"address": "Coonawarra,SA"}, {"address": "McLaren+Vale,SA"} ], "travelMode": "DRIVE", "optimizeWaypointOrder": "true" }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Interfejs Routes API indeksuje punkty pośrednie podane w żądaniu, zaczynając od 0. Na przykład:
0 {"address": "Barossa+Valley,SA"}, 1 {"address": "Clare,SA"}, 2 {"address": "Coonawarrav,SA"}, 3 {"address": "McLaren+Vale,SA"}
Korzystając z numerów indeksów 4 punktów pośrednich podanych w żądaniu, usługa zwraca zoptymalizowaną kolejność:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]