Layanan Distance Matrix (original) (raw)

Langsung ke konten utama

Layanan Distance Matrix

Catatan: Library sisi server

Ringkasan

Layanan Distance Matrix dari Google menghitung jarak perjalanan dan waktu tempuh antara beberapa tempat asal dan tujuan menggunakan moda perjalanan tertentu.

Layanan ini tidak menampilkan detail informasi rute. Informasi rute, termasuk polyline dan rute tekstual, dapat diperoleh dengan meneruskan satu tempat asal dan tujuan yang diinginkan keDirections Service.

Memulai

Sebelum menggunakan layanan Distance Matrix di Maps JavaScript API, pastikan terlebih dahulu bahwa Distance Matrix API (Lama) diaktifkan di Konsol Google Cloud, dalam project yang sama dengan yang Anda siapkan untuk Maps JavaScript API.

Untuk menampilkan daftar API yang telah diaktifkan:

  1. Buka Konsol Google Cloud.
  2. Klik tombol Select a project, lalu pilih project yang sama dengan yang Anda siapkan untuk Maps JavaScript API dan klik Open.
  3. Dari daftar API di Dashboard, cariDistance Matrix API (Lama).
  4. Jika sudah melihat API di dalam daftar, artinya Anda sudah siap. Jika API tidak tercantum, aktifkan dihttps://console.cloud.google.com/apis/library/distance-matrix-backend.googleapis.com

Harga dan kebijakan

Harga

Untuk mempelajari kebijakan harga dan penggunaan layanan Distance Matrix JavaScript, lihatPenggunaan dan Penagihanuntuk Distance Matrix API (Lama).

Catatan: Setiap kueri yang dikirim ke layanan Distance Matrix dibatasi oleh jumlah elemen yang diizinkan, yang dihitung dengan cara mengalikan jumlah asal dan_tujuan_.

Kebijakan

Penggunaan layanan Distance Matrix harus sesuai dengan kebijakan yang dijelaskan untuk Distance Matrix API (Lama).

Permintaan Distance Matrix

Mengakses layanan Distance Matrix bersifat asinkron, karena Google Maps API harus melakukan panggilan ke server eksternal. Oleh karena itu, Anda harus meneruskan metode callback agar dieksekusi setelah permintaan selesai untuk memproses hasilnya.

Anda mengakses layanan Distance Matrix dalam kode Anda melalui objek konstruktor google.maps.DistanceMatrixService. Metode DistanceMatrixService.getDistanceMatrix() memulai permintaan ke layanan Distance Matrix, yang meneruskan literal objekDistanceMatrixRequest yang berisi asal, tujuan, dan moda transportasi, serta metode callback yang akan dieksekusi setelah menerima respons.

var origin1 = new google.maps.LatLng(55.930385, -3.118425); var origin2 = 'Greenwich, England'; var destinationA = 'Stockholm, Sweden'; var destinationB = new google.maps.LatLng(50.087692, 14.421150);

var service = new google.maps.DistanceMatrixService(); service.getDistanceMatrix( { origins: [origin1, origin2], destinations: [destinationA, destinationB], travelMode: 'DRIVING', transitOptions: TransitOptions, drivingOptions: DrivingOptions, unitSystem: UnitSystem, avoidHighways: Boolean, avoidTolls: Boolean, }, callback);

function callback(response, status) { // See Parsing the Results for // the basics of a callback function. }

Lihat contoh

DistanceMatrixRequest berisi kolom berikut:

Mode Perjalanan

Saat menghitung waktu dan jarak, Anda dapat menetapkan moda transportasi yang akan digunakan. Mode perjalanan berikut saat ini telah didukung:

Opsi Transportasi Umum

Layanan Transportasi Umum saat ini 'bersifat eksperimental'. Selama fase ini, kami akan mengimplementasikan pembatasan kapasitas untuk mencegah penyalahgunaan API. Pada akhirnya kami akan membatasi total permintaan per pemuatan peta berdasarkan penggunaan wajar atas API.

Opsi yang tersedia untuk permintaan matriks jarak bervariasi antara mode perjalanan. Dalam permintaan transportasi umum, opsi avoidHighways dan avoidTolls diabaikan. Anda dapat menentukan opsi pemilihan rute khusus transportasi umum melalui literal objekTransitOptions.

Permintaan transportasi umum sangat bergantung pada waktu. Perhitungan hanya akan ditampilkan untuk waktu yang akan datang.

Literal objek TransitOptions berisi kolom berikut:

{ arrivalTime: Date, departureTime: Date, modes: [transitMode1, transitMode2] routingPreference: TransitRoutePreference }

Kolom-kolom ini dijelaskan di bawah:

Opsi Mengemudi

Gunakan objek drivingOptions untuk menentukan waktu keberangkatan untuk menghitung rute terbaik ke tujuan Anda berdasarkan perkiraan kondisi lalu lintas. Anda juga dapat menentukan apakah menginginkan perkiraan waktu dalam lalu lintas bersifat pesimistis, optimistis, atau perkiraan terbaik berdasarkan kondisi lalu lintas historis dan lalu lintas live.

Objek drivingOptions berisi kolom-kolom berikut:

{ departureTime: Date, trafficModel: TrafficModel }

Kolom-kolom ini dijelaskan di bawah:

Berikut adalah contoh DistanceMatrixRequest untuk rute mengemudi, termasuk waktu keberangkatan dan model lalu lintas:

{ origins: [{lat: 55.93, lng: -3.118}, 'Greenwich, England'], destinations: ['Stockholm, Sweden', {lat: 50.087, lng: 14.421}], travelMode: 'DRIVING', drivingOptions: { departureTime: new Date(Date.now() + N), // for the time N milliseconds from now. trafficModel: 'optimistic' } }

Respons Distance Matrix

Panggilan yang berhasil ke layanan Distance Matrix akan menampilkan objek DistanceMatrixResponse dan objek DistanceMatrixStatus. Objek ini akan diteruskan ke fungsi callback yang Anda tetapkan dalam permintaan.

Objek DistanceMatrixResponse berisi informasi jarak dan durasi untuk setiap pasangan asal/tujuan yang rutenya dapat dihitung.

{ "originAddresses": [ "Greenwich, Greater London, UK", "13 Great Carleton Square, Edinburgh, City of Edinburgh EH16 4, UK" ], "destinationAddresses": [ "Stockholm County, Sweden", "Dlouhá 609/2, 110 00 Praha-Staré Město, Česká republika" ], "rows": [ { "elements": [ { "status": "OK", "duration": { "value": 70778, "text": "19 hours 40 mins" }, "distance": { "value": 1887508, "text": "1173 mi" } }, { "status": "OK", "duration": { "value": 44476, "text": "12 hours 21 mins" }, "distance": { "value": 1262780, "text": "785 mi" } } ] }, { "elements": [ { "status": "OK", "duration": { "value": 96000, "text": "1 day 3 hours" }, "distance": { "value": 2566737, "text": "1595 mi" } }, { "status": "OK", "duration": { "value": 69698, "text": "19 hours 22 mins" }, "distance": { "value": 1942009, "text": "1207 mi" } } ] } ] }

Hasil Distance Matrix

Kolom yang didukung dalam respons dijelaskan di bawah ini.

Kode Status

Respons Distance Matrix berisi kode status untuk respons secara keseluruhan, serta status untuk setiap elemen.

Kode Status Respons

Kode status yang berlaku untuk DistanceMatrixResponse diteruskan dalam objek DistanceMatrixStatus dan mencakup:

Kode Status Elemen

Kode status berikut berlaku untuk objekDistanceMatrixElement tertentu:

Mengurai Hasil

Objek DistanceMatrixResponse berisi satu row untuk setiap tempat asal yang diteruskan dalam permintaan. Setiap baris berisi kolom element untuk setiap pasangan tempat asal tersebut dengan tujuan yang diberikan.

function callback(response, status) { if (status == 'OK') { var origins = response.originAddresses; var destinations = response.destinationAddresses;

for (var i = 0; i < origins.length; i++) {
  var results = response.rows[i].elements;
  for (var j = 0; j < results.length; j++) {
    var element = results[j];
    var distance = element.distance.text;
    var duration = element.duration.text;
    var from = origins[i];
    var to = destinations[j];
  }
}

} }

Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.

Terakhir diperbarui pada 2025-06-10 UTC.