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

Varsayılan olarak Routes API Compute Routesmetodu, 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

  1. Rotadaki yol işaretlerinin hiçbirinde via değerinin true (ö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.

  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

    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?

  1. Sağladığınız sıraya göre ara noktaları otomatik olarak dizine ekler bunları istekte bulunabilirsiniz.

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

  3. routes nesnesinde, routes.optimizedIntermediateWaypointIndex altındaki waypoint_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
            ]