Domyślnie metoda interfejsu Routes API Compute Routes
oblicza trasę z kilkoma przystankami, zwanymi punktami pośrednimi, w kolejności, w jakiej je podasz.
Interfejs Routes API może zoptymalizować podany szlak, zmieniając kolejność przystanków na bardziej efektywną. Optymalizacja punktów kontrolnych optymalizuje czas podróży, ale przy podejmowaniu decyzji o najbardziej efektywnej trasie bierze pod uwagę także inne czynniki, takie jak odległość i liczba zakrętów.
Optymalizacja punktów pośrednich
Upewnij się, że żaden z punktów pośrednich na trasie nie ma wartości
via
ustawionej natrue
, na przykład{"address": "Clare,SA", "via": true}
. Więcej informacji o punktach pośrednich znajdziesz w artykule Określanie punktów pośrednich.Upewnij się, że nagłówek
routing_preference
nie jest ustawiony naTRAFFIC_AWARE_OPTIMAL
.Ustaw
optimize_waypoint_order
natrue
. Na przykład:"optimizeWaypointOrder": "true",
W polu maski wskaż pole
routes.optimizedIntermediateWaypointIndex
:REST
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
RPC
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
Jak optymalizowany jest kolejność punktów orientacyjnych
Oto jak interfejs Routes API optymalizuje kolejność punktów pośrednich na trasie:
automatycznie indeksuje punkty pośrednie na podstawie kolejności podania ich w żądaniu, zaczynając od 0;
Optymalizuje kolejność punktów kontrolnych za pomocą przypisanych do nich numerów indeksu w żądaniu.
Zwraca kolejność punktów kontrolnych zoptymalizowanych w obiekcie
routes
w poluwaypoint_order
w sekcjiroutes.optimizedIntermediateWaypointIndex
.
Przykład
W tym żądaniu prosi się o optymalizację trasy z Adelaide w Australii Południowej do każdego z głównych regionów winiarskich w tej prowincji, a potem z powrotem 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 kontrolne 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 kontrolnych podanych w żądaniu, usługa zwraca zoptymalizowany porządek:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ].