Mendapatkan matriks rute

Gunakan Routes API untuk menghitung jarak dan durasi rute untuk beberapa tempat asal dan tujuan dengan memanggil metode Metode computeRouteMatrix (REST) atau 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. Untuk contohnya, lihat Mendapatkan matriks rute untuk transportasi umum.

Batas permintaan

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

  • Jumlah elemen untuk rute tidak boleh melebihi 625 yang bukan merupakan 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 Tentukan cara dan apakah data traffic perlu disertakan.

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

Error respons

Salah satu fitur dari metode Compute Route Matrix adalah bahwa kesalahan dapat dikembalikan untuk seluruh respons atau untuk elemen respons individual. Misalnya, seluruh respons berisi error jika permintaan salah format (misalnya, data tersebut tidak memiliki origin).

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

Hasil Stream gRPC

Kursus ComputeRouteMatrix Metode gRPC mengambil daftar origin dan tujuan serta menampilkan aliran data yang berisi informasi rute untuk setiap kombinasi tempat asal dan tujuan. Karena hasilnya dikembalikan sebagai streaming, Anda tidak perlu menunggu sampai kemungkinan kombinasi rute akan dihitung sebelum Anda dapat mulai memproses hasil pengujian tersebut.

Elemen yang ditampilkan oleh streaming tidak dijamin akan ditampilkan dalam pesanan. Oleh karena itu, setiap elemen respons berisi origin_index dan destination_index. Untuk tempat asal dan tujuan yang ditetapkan 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 tempat asal dan pesanan daftar tujuan.

Menghitung Contoh Matriks Rute

Menggunakan 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 menghitung rute dari setiap tempat asal ke setiap tujuan sehingga respons berisi empat rute.

    Dalam {i>array<i}, elemen pertama memiliki indeks 0, yang kedua adalah indeks 1, dan sebagainya.

  • Sertakan mask kolom respons untuk menentukan kolom mana dari respons (REST) atau ComputeRoutesResponse (gRPC) untuk ditampilkan. Dalam contoh ini, konfigurasikan permintaan untuk menampilkan originIndex, destinationIndex, duration, distanceMeters, status, dan condition untuk setiap rute. Untuk informasi selengkapnya, lihat Pilih 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 origin dan titik jalan tujuan.

Identifikasi setiap rute dalam respons menggunakan originIndex dan destinationIndex kolom respons. Misalnya, originIndex dari 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 di Contoh permintaan gRPC. Java di halaman tersebut yang memanggil Compute Routes dan Compute Route Matrix.