Routes API, varsayılan olarak varsayılan rotayı döndürür. Bu rota genellikle başlangıç noktasından varış noktasına giden en hızlı rotadır. Alternatif rotalar istediğinizde API, varsayılan rotayla birlikte en fazla üç rota döndürür. Müşterileriniz daha sonra gereksinimlerine en uygun rotayı seçebilir.
Alternatif rota isteğinde bulunurken dikkat edilmesi gereken noktalar
Alternatif rotalar isterken aşağıdaki noktaları göz önünde bulundurun:
Yalnızca ara yol noktası olmayan rotalar için alternatif rota isteğinde bulunabilirsiniz. Rota, ara yol noktaları belirttiğinde alternatif rotalar istenmesi hataya neden olmaz. Ancak alternatif rota döndürülmez.
Yanıtta en fazla üç alternatif rota bulunur. Ancak bazen alternatif rota bulunmadığı için yanıtta yalnızca varsayılan rota yer alır.
Alternatif rotaları hesaplamak için ek işlem yapılması gerektiğinden alternatif rota isteğinde bulunmak API'nin yanıt süresini uzatabilir.
Örnek alternatif rota isteği
Alternatif rotalar istemek için computeAlternativeRoutes
seçeneğini true
olarak ayarlayın. Aşağıdaki örnekte, computeRoutes yöntemi (REST) isteğinde alternatif rotaların nasıl isteneceği gösterilmektedir.
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Bu örnekte, yanıtın her rota için yalnızca duration
, distanceMeters,
ve routeLabels
özelliklerini içermesi amacıyla bir alan maskesi belirtiyorsunuz. Müşteriniz daha sonra bu bilgileri kullanarak hangi rotayı kullanacağını seçebilir. Daha fazla bilgi için Hangi bilgilerin döndürüleceğini seçme başlıklı makaleyi inceleyin.
Örnek alternatif rota yanıtı
Yanıt içinde, erişim rotasını tanımlamak için routeLabels
dizi özelliğini kullanın:
Varsayılan rota için
routeLabels
özelliğiDEFAULT_ROUTE
içerir.Alternatif rotalarda
routeLabels
özelliğiDEFAULT_ROUTE_ALTERNATE
değerini içerir.
Bu örnekte, yanıtta varsayılan rota ve iki alternatif rota yer alıyor. duration
ve distanceMeters
özelliklerinin değerlerinin her rota için farklı olduğuna dikkat edin:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
Yanıta çoklu çizgileri dahil etme
Kullanıcının rotayı daha kolay seçebilmesi için yanıta her rota için çoklu çizgi ekleyin. Daha sonra her çoklu çizgi haritada gösterilebilir.
Çoklu çizgi eklemek için alan maskesine routes.polyline
ekleyin:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
Yanıt daha sonra her rota için çoklu çizgi içerir:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }