Domyślnie metoda Compute Routes
interfejsu Routes API oblicza trasę przez wiele przystanków nazywanych punktami na trasie międzylądowania w podanej przez Ciebie kolejności.
Interfejs Routes API może optymalizować wskazaną trasę, zmieniając przystanki w bardziej efektywnej kolejności. Optymalizacja punktów pośrednich jest optymalizowana pod kątem czasu podróży, ale przy wyborze trasy uwzględnia też inne czynniki, takie jak odległość i liczba skrętów.
Optymalizacja punktów na drodze
Żaden z punktów pośrednich na trasie nie może mieć ustawienia
via
o wartościtrue
, np.{"address": "Clare,SA", "via": true}
. Więcej informacji o pośrednich punktach pośrednich znajdziesz w artykule o określaniu pośrednich punktów na trasie.Upewnij się, że pole
routing_preference
nie jest ustawione 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")
Zrozumienie sposobu optymalizacji kolejności punktów pośrednich
Oto jak interfejs Routes API optymalizuje kolejność punktów na trasie:
Automatycznie indeksuje punkty na trasie na podstawie kolejności, w jakiej zostały podane w żądaniu, zaczynając od 0.
Optymalizuje kolejność punktów na trasie przy użyciu numerów indeksu przypisanych do punktów pośrednich w żądaniu.
Zwraca zoptymalizowaną kolejność punktów pośrednich w obiekcie
routes
, w poluwaypoint_order
, w poluroutes.optimizedIntermediateWaypointIndex
.
Przykład
Ten wniosek dotyczy optymalizacji trasy z Adelajdy w Australii Południowej do każdego z głównych regionów winiarskich w Australii Południowej, a następnie powrotu do Adelajdy.
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": "Connawarra,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.optimizedIntermediateWaypointIndex' \ '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": "Connawarra,SA"}, 3 {"address": "McLaren+Vale,SA"}
Korzystając z numerów indeksu 4 punktów pośrednich podanych w żądaniu, usługa zwraca zoptymalizowaną kolejność:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]