Domyślnie metoda interfejsu Routes APICompute 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 bierze też pod uwagę 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
via
natrue
, 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_preference
nie jest ustawiony naTRAFFIC_AWARE_OPTIMAL
.Ustaw wartość
optimize_waypoint_order
natrue
. Na przykład:"optimizeWaypointOrder": "true",
Określ pole
routes.optimizedIntermediateWaypointIndex
w 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
routes
w poluwaypoint_order
w sekcjiroutes.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 pośrednie punkty na trasie 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 ]