Mendapatkan matriks rute

Gunakan Routes API untuk menghitung jarak dan durasi rute untuk beberapa tempat asal dan tujuan dengan memanggil metode computeRouteMatrix (REST) atau metode streaming ComputeRouteMatrix (gRPC).

Dengan mempertimbangkan daftar tempat asal dan tujuan, metode ini menghitung jarak dan durasi rute yang dimulai di setiap tempat asal dan berakhir di setiap tujuan.

Mendapatkan matriks rute transportasi umum

Anda juga dapat menghitung matriks rute saat transit. Sebagai contoh, lihat Mendapatkan matriks rute saat transportasi umum.

Batas permintaan

Metode Compute Route Matrix menerapkan batas permintaan berikut untuk titik jalan menggunakan alamat atau ID tempat, dan untuk elemen. Elemen adalah rute antara setiap tempat asal dan tujuan dalam matriks rute, sehingga jumlah elemen adalah jumlah asal kali jumlah tujuan. Misalnya, jika Anda memiliki 10 tempat asal dan 10 tujuan, berarti Anda memiliki 100 elemen:

  • Jumlah elemen tidak boleh lebih dari 625 untuk rute yang bukan rute TRANSIT.

  • Jika Anda menentukan rute TRANSIT, jumlah elemen tidak boleh melebihi 100.

  • Jika Anda menentukan TRAFFIC_AWARE_OPTIMAL, jumlah elemen tidak boleh melebihi 100. Untuk informasi selengkapnya tentang TRAFFIC_AWARE_OPTIMAL, lihat Menentukan cara dan apakah data traffic perlu disertakan.

  • Jika menentukan asal atau tujuan menggunakan alamat atau ID tempat, Anda menentukan total hingga 50 dengan cara ini.

Error respons

Salah satu fitur dari metode Compute Route Matrix adalah error dapat ditampilkan untuk seluruh respons atau untuk elemen respons individual. Misalnya, seluruh respons berisi error jika format permintaan salah (misalnya, permintaan memiliki nol origin).

Namun, jika error berlaku pada subset elemen dalam respons (misalnya, rute tidak dapat dihitung untuk satu kombinasi tempat asal dan tujuan), hanya elemen yang terpengaruh oleh error tersebut yang akan menampilkan kode error.

Hasil Stream gRPC

Metode gRPC ComputeRouteMatrix mengambil daftar tempat asal dan tujuan, serta menampilkan aliran data yang berisi informasi rute untuk setiap kombinasi tempat asal dan tujuan. Karena hasilnya ditampilkan sebagai aliran data, Anda tidak perlu menunggu sampai semua kemungkinan kombinasi rute dihitung sebelum dapat mulai memproses hasilnya.

Elemen yang ditampilkan oleh streaming tidak dijamin akan ditampilkan dalam urutan apa pun. Oleh karena itu, setiap elemen respons berisi origin_index dan destination_index. Untuk asal dan tujuan yang ditentukan oleh permintaan, asal rute setara dengan origins[origin_index] untuk elemen tertentu dan tujuan rute setara dengan destinations[destination_index]. Array ini diindeks nol. Penting untuk menyimpan pesanan asal dan daftar tujuan.

Menghitung Contoh Matriks Rute

Gunakan metode computeRouteMatrix dalam permintaan HTTP untuk menghitung matriks rute.

Contoh HTTP

Contoh berikut menunjukkan permintaan HTTP computeRouteMatrix. Dalam contoh ini, Anda:

  • Menentukan array yang berisi dua titik jalan asal dan dua tujuan. Metode ini menghitung rute dari setiap tempat asal ke setiap tujuan sehingga responsnya berisi empat rute.

    Dalam array, elemen pertama memiliki indeks 0, elemen kedua adalah indeks 1, dan seterusnya.

  • Sertakan mask kolom respons untuk menentukan kolom response (REST) atau ComputeRoutesResponse (gRPC) yang akan ditampilkan. Dalam contoh ini, konfigurasikan permintaan untuk menampilkan originIndex, destinationIndex, duration, distanceMeters, status, dan condition untuk setiap rute. Untuk mengetahui informasi selengkapnya, lihat Memilih kolom untuk ditampilkan.

curl -X POST -d '{
  "origins": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420761,
            "longitude": -122.081356
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.403184,
            "longitude": -122.097371
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    }
  ],
  "destinations": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420999,
            "longitude": -122.086894
          }
        }
      }
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.383047,
            "longitude": -122.044651
          }
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

Respons akan berisi empat kemungkinan rute untuk kombinasi semua titik jalan asal dan tujuan.

Identifikasi setiap rute dalam respons menggunakan kolom respons originIndex dan destinationIndex. Misalnya, originIndex 1 dalam respons sesuai dengan rute yang dihitung dari titik jalan pada indeks 1 array origins dalam permintaan.

[
    {
        "originIndex": 0,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 822,
        "duration": "160s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 2919,
        "duration": "361s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 5598,
        "duration": "402s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 0,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 7259,
        "duration": "712s",
        "condition": "ROUTE_EXISTS"
    }
]

Contoh gRPC

Misalnya, permintaan gRPC, lihat contoh pada Contoh permintaan gRPC. Contoh Java di halaman tersebut memanggil Compute Routes dan Compute Route Matrix.