Interfejs Routes API może zwracać trasy jazdy zoptymalizowane pod kątem krótszego dystansu, jeśli włączysz trasy o krótszym dystansie.
Gdy żądasz trasy o krótszej długości, usługa zwraca:
- domyślna, która jest optymalizowana przede wszystkim pod kątem czasu dojazdu;
- krótsza trasa zoptymalizowana pod kątem minimalizowania odległości przebytej podczas całej podróży;
Co to jest i po co go używać
Trasa o krótszym dystansie stawia odległość ponad komfort jazdy i szybkość. Na przykład może preferować drogi lokalne zamiast autostrad, wybierać drogi gruntowe lub omijać parkingi. Nie zwraca żadnych manewrów, które według Map Google są niezgodne z prawem.
Poproś o krótszą trasę
Twoja prośba musi spełniać te kryteria:
- Ustaw wartość
travelMode
naDRIVE
,BICYCLE
lubTWO_WHEELER
. - Ustaw
requestedReferenceRoutes
naSHORTER_DISTANCE
. - Ustaw maskę pola odpowiedzi, aby zwrócić właściwości odpowiedzi powiązane z krótszą trasą:
routes.routeLabels
: identyfikuje każdą trasę jakoDEFAULT_ROUTE
,SHORTER_DISTANCE
lubDEFAULT_ROUTE_ALTERNATE
.routes.routeToken
: token trasy, który możesz przekazać do pakietu SDK do nawigacji, aby pobrać niestandardową trasę.
- Nie uwzględniaj żadnych
Via
punktów pośrednich. - Nie uwzględniaj parametru
optimizeWaypointOrder
. - Opcjonalnie: ustaw maskę pola odpowiedzi, aby zwrócić te właściwości związane z trasą domyślną i krótszą:
routes.distanceMeters
: zwraca odległość trasy.routes.duration
: zwraca czas trwania trasy.
Informacje referencyjne znajdziesz w elementach ReferenceRoute i RouteLabel.
Przykładowe żądanie: trasa o krótszej długości
Poniższy kod pokazuje żądanie dotyczące krótszej trasy. W tym przykładzie używasz maski pola odpowiedzi, aby zwrócić pola powiązane z trasą domyślną i krótszą, 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ład odpowiedzi dotyczącej 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 dotyczące trasy o krótszej długości i oszczędnej pod względem zużycia paliwa.
`
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 trasy o niskim spalaniu
W tym przypadku krótsza odległość i trasy o najniższym spalaniu są takie same, więc zwracana jest ta trasa, a wartość routeLabel
jest uwzględniana 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 na podstawie innych ustawionych parametrów.
Więcej informacji o płatnościach w przypadku interfejsu Routes API.