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 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:
Yanıt en fazla üç alternatif rota içerir. Ancak bazen alternatif rota bulunmadığından yanıtta yalnızca varsayılan rota yer alır.
Alternatif rotaları hesaplamak için ek işlem gerektiğinden alternatif rota isteğinde bulunmak API'nin yanıt süresini uzatabilir.
Alternatif rotalar isteği örneğ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 belirtirsiniz. Müşteriniz bu bilgileri kullanarak hangi rotayı izleyeceğini seçebilir. Daha fazla bilgi için Hangi bilgilerin döndürüleceğini seçme başlıklı makaleyi inceleyin.
Örnek alternatif rotalar yanıtı
Yanıtta, erişim rotasını tanımlamak için routeLabels dizi özelliğini kullanın:
Varsayılan rota için
routeLabelsözelliğiDEFAULT_ROUTEdeğerini içerir.Alternatif rotalarda
routeLabelsözelliğiDEFAULT_ROUTE_ALTERNATEdeğerini içerir.
Bu örnekte yanıt, varsayılan rotayı ve iki alternatif rotayı içerir. duration ve distanceMeters özelliklerinin değerleri her rota için farklıdır:
{ "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ı seçmesini kolaylaştırmak için her rotanın çoklu çizgisini yanıta ekleyin. Daha sonra her çoklu çizgi haritada gösterilebilir.
Çoklu çizgiyi eklemek için alan maskesine routes.polyline değerini 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" ] } ] }