Matriks rute adalah array dua dimensi informasi rute, dengan baris yang sesuai dengan asal dan kolom yang sesuai dengan tujuan. Dengan daftar asal dan tujuan, class Route Matrix menghitung jarak dan durasi rute yang dimulai di setiap asal dan berakhir di setiap tujuan. Gunakan class Route Matrix untuk menghitung jarak dan durasi rute untuk beberapa tempat asal dan tujuan.
Batas permintaan
Metode RouteMatrix.computeRouteMatrix()
memberlakukan batas permintaan berikut untuk titik jalan menggunakan instance Alamat atau Tempat, dan untuk item. Item adalah rute
antara setiap asal dan tujuan dalam matriks rute, sehingga jumlah item adalah jumlah
asal dikalikan dengan jumlah tujuan. Misalnya, jika Anda memiliki 10 asal dan 10
tujuan, Anda memiliki 100 item:
- Jumlah item tidak boleh melebihi 625 untuk rute yang bukan
rute
TRANSIT
. - Jika Anda menentukan rute
TRANSIT
, jumlah item tidak boleh melebihi 100. - Jika Anda menentukan
TRAFFIC_AWARE_OPTIMAL
, jumlah item tidak boleh melebihi 100. - Jika Anda menentukan asal atau tujuan menggunakan alamat atau instance Place, Anda dapat menentukan hingga total 50 dengan cara ini.
Contoh permintaan matriks rute
Contoh berikut menunjukkan ComputeRouteMatrixRequest
. Contoh ini
melakukan hal berikut:
- Menunjukkan penentuan array dua titik jalan asal dan dua titik jalan tujuan. Metode
menghitung rute dari setiap asal ke setiap tujuan sehingga respons berisi empat
rute.
Dalam array, elemen pertama berada pada indeks 0, elemen kedua berada pada indeks 1, dan seterusnya. - Tentukan kolom yang akan ditampilkan. Dalam contoh ini, konfigurasi permintaan untuk menampilkan
durationMillis
,distanceMeters
, dancondition
untuk setiap rute.
const request = { origins: [origin1, origin2], destinations: [destinationA, destinationB], travelMode: google.maps.TravelMode.DRIVING, units: google.maps.UnitSystem.METRIC, fields: ['durationMillis', 'distanceMeters', 'condition'], };
Respons berisi empat kemungkinan rute untuk kombinasi semua titik jalan asal dan tujuan, seperti yang ditunjukkan dalam contoh berikut:
"matrix": { "rows": [ { "items": [ { "condition": "ROUTE_EXISTS", "distanceMeters": 202587, "durationMillis": 10040000 }, { "condition": "ROUTE_EXISTS", "distanceMeters": 252734, "durationMillis": 12240000 } ] }, { "items": [ { "condition": "ROUTE_EXISTS", "distanceMeters": 166135, "durationMillis": 6596000 }, { "condition": "ROUTE_EXISTS", "distanceMeters": 216282, "durationMillis": 8797000 } ] } ] }
Identifikasi setiap rute dalam hasil menggunakan indeks asal dan tujuan untuk menemukan
RouteMatrixItem
yang sesuai dalam array 2D. Misalnya, RouteMatrixItem
yang menjelaskan rute yang dihitung dari asal pada indeks 1 dan
tujuan 0 dalam permintaan akan berada di elemen ke-2 array RouteMatrix.rows
dan elemen ke-1 array RouteMatrixRow.items
.
Cuplikan kode berikut menunjukkan cara mengidentifikasi RouteMatrixItem
untuk menemukan
rute untuk asal dan tujuan tertentu:
// Find the route for origin 'x' and destination 'y'. const {matrix} = await RouteMatrix.computeRouteMatrix(request); const myRouteMatrixItem = matrix.rows[x].items[y];
Pilih kolom yang akan ditampilkan
Saat meminta matriks rute, Anda harus menggunakan mask kolom untuk menentukan informasi yang harus ditampilkan oleh respons.
Penggunaan mask kolom juga memastikan bahwa Anda tidak meminta data yang tidak perlu, yang pada gilirannya membantu latensi respons dan menghindari pengembalian informasi yang tidak diperlukan sistem Anda.
Tentukan daftar kolom yang Anda butuhkan dengan menyetel
properti
ComputeRoutesMatrixRequest.fields
, seperti yang ditunjukkan dalam cuplikan berikut:
fields: ['durationMillis', 'distanceMeters', 'condition'],
Menentukan mask kolom yang akan digunakan
Berikut cara menentukan kolom yang ingin Anda gunakan, dan membuat mask kolom untuk kolom tersebut:
- Minta semua kolom menggunakan mask kolom
['*']
. - Lihat hierarki kolom di class
RouteMatrixItem
untuk kolom yang Anda inginkan. Buat masker kolom menggunakan hierarki kolom yang ditampilkan di langkah sebelumnya, menggunakan format ini:
topLevelField[.secondLevelField][.thirdLevelField][...]
Misalnya, untuk RouteMatrixItem
ini:
"travelAdvisory": { "fuelConsumptionMicroliters": 0, "tollInfo": { "estimatedPrices": [ { "currencyCode": "USD", "units": 4, "nanos": 400000000 } ] } },
Jika Anda hanya ingin menampilkan kolom tollInfo
untuk RouteMatrixItem
,
mask kolom Anda adalah sebagai berikut:
fields: ['travelAdvisory.tollInfo']
Jika Anda ingin meminta perkiraan konsumsi bahan bakar, mask kolom Anda adalah sebagai berikut:
fields: ['travelAdvisory.fuelConsumptionMicroliters']
Jika Anda ingin meminta keduanya, mask kolom Anda adalah sebagai berikut:
fields: ['travelAdvisory.fuelConsumptionMicroliters', 'travelAdvisory.tollInfo']
Jika Anda ingin meminta kumpulan lengkap saran perjalanan, mask kolom Anda adalah sebagai berikut:
fields: ['travelAdvisory']