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. Ara nokta optimizasyonu seyahat için optimizasyon yapar süre ve dönüş sayısı gibi diğer faktörleri de hesaba katar ve en verimli rotanın hangisi olduğuna karar verir.
Ara noktaları optimize etmek için
Rotadaki yol işaretlerinin hiçbirinde
via
değerinintrue
(ör.{"address": "Clare,SA", "via": true}
) olarak ayarlanmadığından emin olun. Ara yol işaretleri hakkında daha fazla bilgi için Ara yol işaretleri belirtme başlıklı makaleyi inceleyin.routing_preference
öğesininTRAFFIC_AWARE_OPTIMAL
olarak ayarlanmadığından emin olun.optimize_waypoint_order
değerinitrue
olarak ayarlayın. Örneğin:"optimizeWaypointOrder": "true",
Alandaki
routes.optimizedIntermediateWaypointIndex
alanını belirtin. maske: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?
Sağladığınız sıraya göre ara noktaları otomatik olarak dizine ekler bunları istekte bulunabilirsiniz.
İ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, isteğini girin. Örneğin:
0 {"address": "Barossa+Valley,SA"}, 1 {"address": "Clare,SA"}, 2 {"address": "Coonawarrav,SA"}, 3 {"address": "McLaren+Vale,SA"}
İstekte sağlanan dört ara nokta için dizin numaralarını kullanarak, hizmeti optimize edilmiş siparişi döndürür:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]