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

Varsayılan olarak Routes API Compute Routes yönteminde, ara noktalar adı verilen birden fazla durak üzerinden bir rota sıradan bir süreçtir.

Routes API'nin sağlanan rotayı yeniden düzenleyerek daha verimli bir sıralamaya sahip olur. 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

  1. Rotadaki ara noktaların hiçbirinde via değerinin true olarak ayarlandığından emin olun: örnek: {"address": "Clare,SA", "via": true}. Daha fazla bilgi için ara noktalar için Ara ara noktalar belirtin.

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

  3. optimize_waypoint_order değerini true olarak ayarlayın. Örneğin:

    "optimizeWaypointOrder": "true",
    
  4. Alandaki routes.optimizedIntermediateWaypointIndex alanını belirtin. maske:

    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. Sağladığınız sıraya göre ara noktaları otomatik olarak dizine ekler bunları istekte bulunabilirsiniz.

  2. Dizin numaralarını kullanarak ara noktaların sırasını optimize eder istekteki ara noktalara atanır.

  3. routes nesnesindeki optimize edilmiş ara nokta sırasını döndürür. waypoint_order alanı, routes.optimizedIntermediateWaypointIndex altında.

Örnek

Bu istek Adelaide, Güney Avustralya’daki bir rota için optimizasyon istiyor. şaraplarını paylaşmalarını ve Adelaide'a dönmelerini sağlıyor.

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, isteğini girin. Örneğin:

0    {"address": "Barossa+Valley,SA"},
1    {"address": "Clare,SA"},
2    {"address": "Connawarra,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
            ]