Varsayılan olarak Routes API Compute Routes
yöntemi, birden fazla duraktan geçen rotayı, ara nokta adı verilen ve sizin sağladığınız sırayla hesaplar.
Routes API'nin, durakları daha verimli bir sırayla yeniden düzenleyerek sağlanan rotayı optimize etmesini sağlayabilirsiniz. Referans noktası optimizasyonu, seyahat süresini optimize eder. Bununla birlikte, hangi rotanın en verimli olduğuna karar verirken mesafe ve dönüş sayısı gibi diğer faktörleri de dikkate alır.
Yol noktalarını optimize etmek için
Rotadaki ara noktaların hiçbirinde
via
değerinintrue
olarak ayarlanmadığından emin olun, örneğin:{"address": "Clare,SA", "via": true}
. Ara noktalar hakkında daha fazla bilgi edinmek için Ara ara noktalar belirtme bölümüne bakın.routing_preference
değerininTRAFFIC_AWARE_OPTIMAL
olarak ayarlanmadığından emin olun.optimize_waypoint_order
değerinitrue
olarak ayarlayın. Örneğin:"optimizeWaypointOrder": "true",
Alan maskesinde
routes.optimizedIntermediateWaypointIndex
alanını belirtin:REST
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
RPC
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
Yol noktası sırasının nasıl optimize edildiğini anlama
Routes API'nin bir rotadaki ara noktaların sırasını nasıl optimize ettiği aşağıda açıklanmıştır:
Ara noktaları, istekte sağladığınız sıraya göre 0'dan başlayarak otomatik olarak dizine ekler.
İstekteki ara noktalara atadığı dizin numaralarını kullanarak ara noktaların sırasını optimize eder.
routes
nesnesinde,routes.optimizedIntermediateWaypointIndex
altındakiwaypoint_order
alanındaki optimize edilmiş ara nokta sırasını döndürür.
Örnek
Bu istek, Güney Avustralya'nın Adelaide kentinden Güney Avustralya'nın ana şarap bölgelerinin her birine gidip Adelaide'e geri dönen bir rota için optimizasyon yapılmasını ister.
curl -X POST -H 'content-type: application/json' -d ' { "origin": { "address": "Adelaide,SA" }, "destination": { "address": "Adelaide,SA" }, "intermediates": [ {"address": "Barossa+Valley,SA"}, {"address": "Clare,SA"}, {"address": "Coonawarra,SA"}, {"address": "McLaren+Vale,SA"} ], "travelMode": "DRIVE", "optimizeWaypointOrder": "true" }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Routes API, istekte sağlanan ara ara noktalarını 0'dan başlayarak dizine ekler. Örneğin:
0 {"address": "Barossa+Valley,SA"}, 1 {"address": "Clare,SA"}, 2 {"address": "Coonawarrav,SA"}, 3 {"address": "McLaren+Vale,SA"}
Hizmet, istekte sağlanan dört ara nokta için dizin numaralarını kullanarak optimize edilmiş sırayı döndürür:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]