Routes API, varsayılan olarak default (varsayılan) rotasını döndürür. Bu işlem genellikle kalkış noktasından hedefe kadar en hızlı rota. İstekte bulunduğunuzda alternatif rotalar içeriyorsa API, varsayılan rotayla birlikte en fazla üç rota döndürür. yol gösterir. Müşterileriniz, ihtiyaçlarına en uygun rotayı seçebilir.
Alternatif rota isterken dikkat edilmesi gereken noktalar
Alternatif rota isterken aşağıdaki noktaları göz önünde bulundurun:
Yalnızca ara olmayan rotalar için alternatif rotalar isteyebilirsiniz ara hedefler. Rota belirtildiğinde alternatif rotalar isteme ara noktalar hataya neden olmaz. Ancak bunun yerine döndürülmüştür.
Yanıt en fazla üç alternatif rota içerir. Ancak, bazen alternatif bir yol da olmayabilir. Bu nedenle yanıt varsayılan rotadır.
Alternatif hesaplamaları hesaplamak için gereken ek işlem alternatif rotalar istemek yanıt süresini uzatabilir API.
Örnek alternatif rota isteği
Alternatif rotalar istemek için computeAlternativeRoutes
değerini true
olarak ayarlayın. İlgili içeriği oluşturmak için kullanılan
aşağıdaki örnekte,
computeRoutes
yöntemi (REST) isteğiyle yapılabilir.
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, bir alan maskesi belirtirsiniz. Böylece yanıt yalnızca
Her rota için duration
, distanceMeters,
ve routeLabels
özellikleri. Sizin
Müşteri, bu bilgileri kullanarak hangi rotayı alacağını seçebilir. Daha fazla
Hangi bilgileri iade edeceğinizi seçme başlıklı makaleye bakın.
Örnek alternatif rota yanıtı
Yanıtta erişimi tanımlamak için routeLabels
dizi özelliğini kullanın
rota:
Varsayılan rota için
routeLabels
özelliğiDEFAULT_ROUTE
.Alternatif rotalar için
routeLabels
özelliğiDEFAULT_ROUTE_ALTERNATE
.
Bu örnekte, yanıt varsayılan yolu ve iki alternatif
gösterir. duration
ve distanceMeters
özelliklerinin değerlerine dikkat edin
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 çizgiler dahil et
Kullanıcının rotayı seçmesini kolaylaştırmak için çoklu çizgi oluşturun. Ardından her çoklu çizgiyi harita üzerinde görüntüleyin.
Çoklu çizgiyi eklemek için alan maskesine routes.polyline
ifadesini ekleyin:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
Ardından yanıt her rota için çoklu çizgiyi 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" ] } ] }