Rotanızdaki durak sırasını optimize edin

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

  1. Rotadaki ara noktaların hiçbirinde via ayarının true 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.

  2. routing_preference öğesinin TRAFFIC_AWARE_OPTIMAL olarak ayarlanmadığından emin olun.

  3. optimize_waypoint_order öğesini true olarak ayarlayın. Örneğin:

    "optimizeWaypointOrder": "true",
    
  4. 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:

  1. Ara noktaları, istekte sağladığınız sıraya göre 0'dan başlayarak otomatik olarak dizine ekler.

  2. İstekte ara noktalara atadığı dizin numaralarını kullanarak ara noktaların sırasını optimize eder.

  3. routes.optimizedIntermediateWaypointIndex altında, waypoint_order alanındaki routes 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
            ]