Optimalkan urutan perhentian di rute Anda

Secara default, metode Compute Routes Routes API menghitung rute melalui beberapa perhentian, yang disebut titik jalan persinggahan, dalam urutan yang Anda berikan.

Anda dapat meminta Routes API mengoptimalkan rute yang disediakan dengan menyusun ulang perhentian dalam urutan yang lebih efisien. Pengoptimalan titik jalan mengoptimalkan waktu perjalanan, tetapi juga mempertimbangkan faktor lain seperti jarak dan jumlah belokan saat menentukan rute yang paling efisien.

Untuk mengoptimalkan titik jalan

  1. Pastikan tidak ada titik jalan di rute yang menetapkan via ke true, misalnya: {"address": "Clare,SA", "via": true}. Untuk informasi selengkapnya tentang titik jalan menengah, lihat Menentukan titik jalan perantara.

  2. Pastikan routing_preference tidak disetel ke TRAFFIC_AWARE_OPTIMAL.

  3. Tetapkan optimize_waypoint_order ke true. Contoh:

    "optimizeWaypointOrder": "true",
    
  4. Tentukan kolom routes.optimizedIntermediateWaypointIndex di mask kolom:

    REST

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

Memahami cara urutan titik jalan dioptimalkan

Berikut cara Routes API mengoptimalkan urutan titik jalan dalam sebuah rute:

  1. Secara otomatis mengindeks titik jalan berdasarkan urutan yang Anda berikan dalam permintaan, dimulai dengan angka 0.

  2. Mengoptimalkan urutan titik jalan menggunakan nomor indeks yang ditetapkan ke titik jalan dalam permintaan.

  3. Menampilkan urutan titik jalan yang dioptimalkan pada objek routes, pada kolom waypoint_order, di bagian routes.optimizedIntermediateWaypointIndex.

Contoh

Permintaan ini meminta pengoptimalan rute dari Adelaide, Australia Selatan, ke setiap region wine utama Australia Selatan, lalu kembali ke Adelaide.

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 mengindeks titik jalan perantara yang diberikan dalam permintaan, mulai dari 0. Contoh:

0    {"address": "Barossa+Valley,SA"},
1    {"address": "Clare,SA"},
2    {"address": "Connawarra,SA"},
3    {"address": "McLaren+Vale,SA"}

Dengan menggunakan nomor indeks untuk empat titik jalan yang diberikan dalam permintaan, layanan kemudian akan menampilkan urutan yang dioptimalkan:

"optimizedIntermediateWaypointIndex": [
                3,
                2,
                0,
                1
            ]