Routes API Compute Routes
yöntemi, varsayılan olarak birden fazla durak (ara durak adı) adı verilen bir rotayı sizin sağladığınız sırayla hesaplar.
Durakları daha verimli bir şekilde yeniden düzenleyerek Routes API'nin sağlanan rotayı optimize etmesini sağlayabilirsiniz. Referans noktası optimizasyonu, seyahat süresi için optimizasyon yapar ancak en verimli rotaya karar verirken mesafe ve dönüş sayısı gibi diğer faktörleri de göz önünde bulundurur.
Ara noktaları optimize etmek için
Rotadaki ara noktaların hiçbirinde
via
ayarınıntrue
olarak ayarlanmadığından emin olun, örneğin:{"address": "Clare,SA", "via": true}
. Ara ara noktalar hakkında daha fazla bilgi için Ara ara noktaları belirtme bölümüne bakın.routing_preference
öğesininTRAFFIC_AWARE_OPTIMAL
olarak ayarlanmadığından emin olun.optimize_waypoint_order
öğesinitrue
olarak ayarlayın. Örneğin:"optimizeWaypointOrder": "true",
Alan maskesinde
routes.optimizedIntermediateWaypointIndex
alanını belirtin:REST
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
TBG
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
Ara nokta 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.
İstekte ara noktalara atadığı dizin numaralarını kullanarak ara noktaların sırasını optimize eder.
routes.optimizedIntermediateWaypointIndex
altında,waypoint_order
alanındakiroutes
nesnesinde optimize edilmiş ara nokta sırasını döndürür.
Örnek
Bu istekte, Güney Avustralya'nın Adelaide şehrinden Güney Avustralya'nın başlıca şarap bölgelerinin her birine giden bir rotanın optimize edilmesi ve ardından Adelaide'e dönüş yapılması isteniyor.
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": "Connawarra,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.optimizedIntermediateWaypointIndex' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Routes API, 0'dan başlayarak istekte sağlanan ara ara noktaları dizine ekler. Örneğin:
0 {"address": "Barossa+Valley,SA"}, 1 {"address": "Clare,SA"}, 2 {"address": "Connawarra,SA"}, 3 {"address": "McLaren+Vale,SA"}
Ardından hizmet, istekte sağlanan dört ara noktanın dizin numaralarını kullanarak optimize edilen sırayı döndürür:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]