Interfejs Routes API może zwracać trasy jazdy zoptymalizowane pod kątem krótszej odległości, jeśli włączysz trasy o krótszej długości.
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 minimalizacji odległości przebytej podczas całej podróży;
Co to jest i po co go używać
Trasa o krótszym dystansie ma priorytet nad wygodą jazdy lub szybkością. 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 domyślną i krótszą trasą:
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 odległość i trasy o najniższym spalaniu
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
Platforma Mapy Google 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.