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 bu sayede ihtiyaçlarına en uygun rotayı seçebilir.
Alternatif rota isteğinde bulunurken dikkat edilmesi gereken noktalar
Alternatif rota isteğinde bulunmak için aşağıdaki noktaları göz önünde bulundurun:
Yalnızca ara yol işareti içermeyen rotalar için alternatif rota isteğinde bulunabilirsiniz. Rotada ara yol işaretleri belirtildiğinde alternatif rotalar istemek hatayla sonuçlanmaz. Ancak alternatif rota döndürülmez.
Yanıt en fazla üç alternatif rota içerir. Ancak bazen alternatif rota olmadığından yanıtta yalnızca varsayılan rota yer alır.
Alternatif rotaların hesaplanması için gereken ek işlem nedeniyle, alternatif rota isteğinde bulunmak API'nin yanıt süresini uzatabilir.
Alternatif rota isteği örneği
Alternatif rota isteğinde bulunmak için computeAlternativeRoutes
değerini true
olarak ayarlayın. Aşağıdaki örnekte, computeRoutes yönteminde (REST) 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 belirtirsiniz. Müşteriniz bu bilgileri kullanarak hangi rotayı kullanacağını seçebilir. Daha fazla bilgi için Geri döndürülecek bilgileri seçme başlıklı makaleyi inceleyin.
Örnek alternatif rota yanıtı
Yanıtta, erişim yolunu tanımlamak için routeLabels
dizi özelliğini kullanın:
Varsayılan rota için
routeLabels
mülküDEFAULT_ROUTE
içerir.Alternatif rotalar için
routeLabels
mülküDEFAULT_ROUTE_ALTERNATE
içerir.
Bu örnekte yanıt, varsayılan rotayı ve iki alternatif rotayı içerir. 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 çizgiler ekleme
Kullanıcının rotayı seçmesini kolaylaştırmak için her rotanın çoklu çizgisini yanıta ekleyin. Ardından her bir çok çizgiyi haritada görüntüleyebilirsiniz.
Poli çizgiyi eklemek için alan maskesine routes.polyline
ekleyin:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
Ardından yanıt, her rotanın çoklu çizgisini 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" ] } ] }