Gdy włączysz trasy o krótszym dystansie, Compute Routes może zwracać trasy przejazdu zoptymalizowane pod kątem krótszego dystansu.
Gdy poprosisz o wyznaczenie trasy o mniejszej odległości, usługa zwróci:
- Trasa domyślna, która jest optymalizowana głównie pod kątem szacowanego czasu przyjazdu.
- Krótsza trasa zoptymalizowana pod kątem minimalizowania odległości podróży na całej trasie.
Co to jest i dlaczego warto z niego korzystać
Krótsza trasa ma priorytet nad komfortem jazdy i szybkością. Może na przykład preferować drogi lokalne zamiast autostrad, wybierać drogi gruntowe lub przejeżdżać przez parkingi. Nie zwraca żadnych manewrów, które Mapy Google uznają za niezgodne z prawem.
Prośba o wyznaczenie trasy o mniejszej odległości
Żądanie musi spełniać te kryteria:
- Ustaw
travelMode
naDRIVE
,BICYCLE
lubTWO_WHEELER
. - Ustaw wartość
requestedReferenceRoutes
naSHORTER_DISTANCE
. - Ustaw maskę pola odpowiedzi, aby zwracać właściwości odpowiedzi powiązane z trasą o mniejszej odległości:
routes.routeLabels
: określa każdą trasę jakoDEFAULT_ROUTE
,SHORTER_DISTANCE
lubDEFAULT_ROUTE_ALTERNATE
.routes.routeToken
: token trasy, który możesz przekazać do pakietu Navigation SDK, aby pobrać trasę niestandardową.
- Nie dodawaj żadnych
Via
pośrednich punktów trasy. - Nie podawaj parametru
optimizeWaypointOrder
. - Opcjonalnie: ustaw maskę pola odpowiedzi, aby zwracać te właściwości
powiązane zarówno z domyślną, jak i krótszą trasą:
routes.distanceMeters
: zwraca odległość trasy.routes.duration
: zwraca czas trwania trasy.
Informacje referencyjne znajdziesz w dokumentacji ReferenceRoute i RouteLabel.
Przykładowe żądanie: krótsza trasa
Poniższy kod pokazuje żądanie trasy o mniejszej odległości. W tym przykładzie użyjesz maski pola odpowiedzi, aby zwrócić pola powiązane zarówno z domyślną, jak i krótszą trasą, za pomocą tych masek pól:
routes.distanceMeters
routes.duration
curl -X POST -H 'content-type: application/json' -d '{ "origin": { "location": { "latLng": { "latitude": 41.76904801292959, "longitude": -72.67374935684933 } } }, "destination": { "location": { "latLng": { "latitude": 41.823042361105024, "longitude": -71.40933143059424 } } }, "travelMode":"DRIVE", "routingPreference":"TRAFFIC_AWARE", "requestedReferenceRoutes": ["SHORTER_DISTANCE"], }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY \ -H 'X-Goog-FieldMask: routes.distanceMeters,routes.duration,routes.routeLabels,routes.routeToken' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Przykładowa odpowiedź dotycząca krótszej trasy
{
"routes": [
{
"distanceMeters": 138943,
"duration": "5373s",
"routeToken": "CrsCCs4BMssBGq8BCkECFg9eN0MowaEI3Y4KqMEhzOTe-Qi3947kBsb8koUBkvX0oAKJ_b1S4uPoUvzzAYfXA92t_RXyw98Up6qKAaRaABIsNBjodKMdkMYAPMLMIajCwj-zsIxpgyBxOLYjdBBeKgkO3tFDDrj4YgZB5bMaFQAATME12CCCA9MEF-kO2wL_____DyoLHgAOAHN3DggAQQEyBAUBAQM9VDgqPkV88FI_SNO81oLq4JnjYyIXcklWWFo2cjhDZmltdk9NUDQ3aU1nUU0QBRpPCk0KGAoNCgIIAREAAAAAAIBmQBF56SYxqDm4QBISCAAQAxAGEBMQEhgCQgQaAggFIhsKF3JJVlhaLWFOQnZpbXZPTVA0N2lNZ1FNcAEoASIVAACBmRY1BjeCiUQewJGTrQ3DuHRp",
"routeLabels": [
"DEFAULT_ROUTE"
]
},
{
"distanceMeters": 112610,
"duration": "7165s",
"routeToken": "CqgCCrsBMrgBGpwBCjYCFg1SN0MowaEI3Y4KjfqjF6Ls9BXc-QGiqCOpu7FDtfCXxSG2zLOGI_r4uQGc-we_nQ7MLAASLDQY6HSjHZDGg26EAFrPI5Q3NxvGA4ELazy3sLYqno_9eAFD2KxlCqAGQeWzGg4AAMQDGwyiAqwwKQggJCoLHgBsCQ8Acm0XWWcyAgQGPVQ4Kj5FfPBSP0jikPWC95WdhIwBIhdySVZYWjZHR0RiTzV2T01QOUpiQXlBTRAFGk8KTQoYCg0KAggCEQAAAAAAAFlAEU5iEFh5af1AEhIIABADEAYQExASGAJCBBoCCAUiGwoXcklWWFo3S09Cck81dk9NUDlKYkF5QU1wASgCIhUAAIGZFlj_CmMgGE6KGZcsE-tEywM",
"routeLabels": [
"SHORTER_DISTANCE"
]
}
]
}
Przykładowe żądanie: krótsza trasa z najniższym spalaniem
Poniższy kod pokazuje żądanie zarówno krótszej trasy, jak i trasy oszczędnej.
`
curl -X POST -d '{ "origin": { "location": { "latLng": { "latitude": 41.76904801292959, "longitude": -72.67374935684933 } } }, "destination": { "location": { "latLng": { "latitude": 41.823042361105024, "longitude": -71.40933143059424 } } }, "travelMode":"DRIVE", "routingPreference":"TRAFFIC_AWARE_OPTIMAL", "requestedReferenceRoutes": ["SHORTER_DISTANCE", "FUEL_EFFICIENT"] }'
-H 'Content-Type: application/json'
-H 'X-Goog-Api-Key: YOUR_API_KEY'
-H 'X-Goog-FieldMask: routes.distanceMeters,routes.duration,routes.routeLabels,routes.routeToken'
'https://routes.googleapis.com/directions/v2:computeRoutes'
Przykładowa odpowiedź: krótsza odległość i trasa z najniższym spalaniem
W tym przypadku krótsza trasa i trasa z najniższym spalaniem są takie same, więc jest ona zwracana, a symbol routeLabel
jest uwzględniany w przypadku obu typów tras.
{ "routes": [ { "distanceMeters": 138943, "duration": "5375s", "routeToken": "Cr8CCs4BMssBGq8BCkECFg9eN0MowaEI3Y4KqMEhzOTe-Qi3947kBsb8koUBkvX0oAKJ_b1S4uPoUvzzAYfXA92t_RXyw98Up6qKAaRaABIsNBjodKMdkMYAPMLMIajCwj-zsIxpgyBxOLYjdBBeKgkO3tFDDrj4YgZB5bMaFQAATME12CCCA9MEF-kO2wL_____DyoLHgAOAHN3DggAQQEyBAUBAQM9VDgqPkV88FI_SNO81oLq4JnjYyIXS1laWFo4T19JcWVCM2ZFUDFMbms4UXcQBRpTClEKGAoNCgIIAREAAAAAAIBmQBFOYhBYGTy4QBIWCAAQAxAGEBMQEhgCQgQaAggFSgIIASIbChdLWVpYWjlpV0g2ZUIzZkVQMUxuazhRd3ABKAEiFQAAgZkW4Df4cspNNJZWlMZuUUxLPQ", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 112610, "duration": "7156s", "routeToken": "CqwCCrsBMrgBGpwBCjYCFg1SN0MowaEI3Y4KjfqjF6Ls9BXc-QGiqCOpu7FDtfCXxSG2zLOGI_r4uQGc-we_nQ7MLAASLDQY6HSjHZDGg26EAFrPI5Q3NxvGA4ELazy3sLYqno_9eAFD2KxlCqAGQeWzGg4AAMQDGwyiAqwwKQggJCoLHgBsCQ8Acm0XWWcyAgQGPVQ4Kj5FfPBSP0jikPWC95WdhIwBIhdLWVpYWi1UNklfT055OVlQczhhcWlRSRAFGlMKUQoYCg0KAggCEQAAAAAAAFlAEU5iEFh5af1AEhYIABADEAYQExASGAJCBBoCCAVKAggBIhsKF0tZWlhaNERXSF9PTnk5WVBzOGFxaVFJcAEoAiIVAACBmRaESp2EJS5nmwiEF8KH15_f", "routeLabels": [ "FUEL_EFFICIENT", "SHORTER_DISTANCE" ] } ] }
Obsługiwane regiony
Krótsze trasy są obsługiwane we wszystkich regionach.
Płatności
Google Maps Platform nie pobiera dodatkowych opłat za korzystanie z funkcji eksperymentalnej. Opłaty będą naliczane na podstawie wykorzystania interfejsu API zgodnie z innymi ustawionymi przez Ciebie parametrami.
Więcej informacji o płatnościach dotyczących interfejsu Routes API