Varsayılan olarak Routes API Compute Routes
metodu, birden fazla duraktan geçen bir rotayı (durak ara noktaları olarak adlandırılır) 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. Yol noktası optimizasyonu, seyahat süresini optimize eder ancak en verimli rotanın hangisi 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, bir rotadaki yol işaretlerinin sırasını nasıl optimize eder?
Dönüm noktalarını, istekte belirttiğiniz 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ında optimize edilmiş yol noktası 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 yol işaretlerini 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"}
Ardından hizmet, istekte sağlanan dört ara noktanın dizin numaralarını kullanarak optimize edilmiş sırayı döndürür:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]