Method: computeRouteMatrix

Mengambil daftar tempat asal dan tujuan serta menampilkan aliran data yang berisi informasi rute untuk setiap kombinasi tempat asal dan tujuan.

CATATAN: Metode ini mengharuskan Anda menentukan mask kolom respons di input. Anda dapat memberikan mask kolom respons menggunakan parameter URL $fields atau fields, atau dengan menggunakan header HTTP/gRPC X-Goog-FieldMask (lihat parameter dan header URL yang tersedia). Nilainya adalah daftar jalur kolom yang dipisahkan koma. Lihat dokumentasi mendetail ini tentang cara membuat jalur kolom.

Misalnya, dalam metode ini:

  • Mask kolom dari semua kolom yang tersedia (untuk pemeriksaan manual): X-Goog-FieldMask: *
  • Mask kolom untuk durasi rute, jarak, status elemen, kondisi, dan indeks elemen (contoh penyiapan produksi): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

Anda harus menyertakan status di mask kolom karena jika tidak, semua pesan akan tampak baik-baik saja. Google tidak menyarankan penggunaan mask kolom respons karakter pengganti (*), karena:

  • Dengan memilih kolom yang Anda butuhkan saja, server kami dapat menyimpan siklus komputasi, sehingga kami dapat menampilkan hasilnya kepada Anda dengan latensi yang lebih rendah.
  • Memilih kolom yang diperlukan dalam tugas produksi Anda saja akan memastikan performa latensi yang stabil. Kami mungkin menambahkan lebih banyak kolom respons di masa mendatang, dan kolom baru tersebut mungkin memerlukan waktu komputasi tambahan. Jika Anda memilih semua kolom, atau memilih semua kolom di level teratas, Anda mungkin akan mengalami penurunan performa karena kolom baru yang kami tambahkan akan otomatis disertakan dalam respons.
  • Memilih hanya kolom yang diperlukan akan menghasilkan ukuran respons yang lebih kecil, sehingga throughput jaringan lebih tinggi.

Permintaan HTTP

POST https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "origins": [
    {
      object (RouteMatrixOrigin)
    }
  ],
  "destinations": [
    {
      object (RouteMatrixDestination)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "departureTime": string,
  "arrivalTime": string,
  "languageCode": string,
  "regionCode": string,
  "units": enum (Units),
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
Kolom
origins[]

object (RouteMatrixOrigin)

Wajib. Array origin, yang menentukan baris matriks respons. Beberapa batasan ukuran berlaku untuk kardinalitas tempat asal dan tujuan:

  • Jumlah jumlah asal + jumlah tujuan yang ditentukan sebagai placeId atau address tidak boleh lebih dari 50.
  • Dalam hal apa pun, hasil dari jumlah asal × jumlah tujuan tidak boleh lebih dari 625.
  • Hasil perkalian jumlah asal × jumlah tujuan tidak boleh lebih besar dari 100 jika routingPreference ditetapkan ke TRAFFIC_AWARE_OPTIMAL.
  • Hasil perkalian jumlah asal × jumlah tujuan tidak boleh lebih besar dari 100 jika travelMode disetel ke TRANSIT.
destinations[]

object (RouteMatrixDestination)

Wajib. Array tujuan, yang menentukan kolom matriks respons.

travelMode

enum (RouteTravelMode)

Opsional. Menentukan moda transportasi.

routingPreference

enum (RoutingPreference)

Opsional. Menentukan cara menghitung rute. Server mencoba menggunakan preferensi pemilihan rute yang dipilih untuk menghitung rute. Jika preferensi pemilihan rute menghasilkan error atau latensi ekstra yang panjang, error akan ditampilkan. Anda dapat menentukan opsi ini hanya jika travelMode adalah DRIVE atau TWO_WHEELER. Jika tidak, permintaan akan gagal.

departureTime

string (Timestamp format)

Opsional. Waktu keberangkatan. Jika Anda tidak menetapkan nilai ini, nilai ini akan ditetapkan secara default ke waktu saat Anda membuat permintaan. CATATAN: Anda hanya dapat menentukan departureTime di masa lalu saat RouteTravelMode ditetapkan ke TRANSIT.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

arrivalTime

string (Timestamp format)

Opsional. Waktu kedatangan. CATATAN: Hanya dapat disetel jika RouteTravelMode disetel ke TRANSIT. Anda dapat menentukan departureTime atau arrivalTime, tetapi tidak keduanya.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

languageCode

string

Opsional. Kode bahasa BCP-47, seperti "en-US" atau "sr-Latn". Untuk mengetahui informasi selengkapnya, lihat ID Lokalitas Unicode. Buka Dukungan Bahasa untuk mengetahui daftar bahasa yang didukung. Jika Anda tidak memberikan nilai ini, bahasa tampilan akan disimpulkan dari lokasi asal pertama.

regionCode

string

Opsional. Kode wilayah, yang ditetapkan sebagai nilai yang berisi dua karakter ccTLD ("domain level teratas"). Untuk informasi selengkapnya, lihat Domain level teratas kode negara.

units

enum (Units)

Opsional. Menentukan satuan ukuran untuk kolom tampilan.

extraComputations[]

enum (ExtraComputation)

Opsional. Daftar komputasi tambahan yang dapat digunakan untuk menyelesaikan permintaan. Catatan: Komputasi tambahan ini dapat menampilkan kolom tambahan pada respons. Kolom tambahan ini juga harus ditentukan dalam mask kolom yang akan ditampilkan dalam respons.

trafficModel

enum (TrafficModel)

Opsional. Menentukan asumsi yang akan digunakan saat menghitung waktu dalam lalu lintas. Setelan ini memengaruhi nilai yang ditampilkan dalam kolom durasi di RouteMatrixElement yang berisi prediksi waktu lalu lintas berdasarkan rata-rata historis. RoutingPreference ke TRAFFIC_AWARE_OPTIMAL dan RouteTravelMode ke DRIVE. Setelan defaultnya adalah BEST_GUESS jika traffic diminta dan TrafficModel tidak ditentukan.

transitPreferences

object (TransitPreferences)

Opsional. Menentukan preferensi yang memengaruhi rute yang ditampilkan untuk rute TRANSIT. CATATAN: Anda hanya dapat menentukan transitPreferences jika RouteTravelMode disetel ke TRANSIT.

Isi respons

Berisi informasi rute yang dihitung untuk pasangan asal/tujuan di v2.computeRouteMatrix API. Proto ini dapat di-streaming ke klien.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "status": {
    object (Status)
  },
  "condition": enum (RouteMatrixElementCondition),
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "localizedValues": {
    object (LocalizedValues)
  },
  "originIndex": integer,
  "destinationIndex": integer
}
Kolom
status

object (Status)

Kode status error untuk elemen ini.

condition

enum (RouteMatrixElementCondition)

Menunjukkan apakah rute ditemukan atau tidak. Tidak bergantung pada status.

distanceMeters

integer

Jarak perjalanan rute, dalam meter.

duration

string (Duration format)

Lama waktu yang diperlukan untuk menavigasi rute. Jika Anda menetapkan routingPreference ke TRAFFIC_UNAWARE, nilai ini sama dengan staticDuration. Jika Anda menetapkan routingPreference ke TRAFFIC_AWARE atau TRAFFIC_AWARE_OPTIMAL, nilai ini akan dihitung dengan mempertimbangkan kondisi traffic.

Durasi dalam detik dengan maksimal sembilan digit pecahan, diakhiri dengan 's'. Contoh: "3.5s".

staticDuration

string (Duration format)

Durasi perjalanan melalui rute tanpa mempertimbangkan kondisi lalu lintas.

Durasi dalam detik dengan maksimal sembilan digit pecahan, diakhiri dengan 's'. Contoh: "3.5s".

travelAdvisory

object (RouteTravelAdvisory)

Informasi tambahan tentang rute. Contoh: informasi pembatasan dan informasi tol

fallbackInfo

object (FallbackInfo)

Dalam beberapa kasus, jika server tidak dapat menghitung rute dengan preferensi yang diberikan untuk pasangan asal/tujuan tertentu ini, server mungkin akan kembali menggunakan mode komputasi yang berbeda. Saat mode penggantian digunakan, kolom ini berisi informasi mendetail tentang respons penggantian. Jika tidak, kolom ini tidak ditetapkan.

localizedValues

object (LocalizedValues)

Representasi teks dari properti RouteMatrixElement.

originIndex

integer

Indeks berbasis nol dari origin dalam permintaan.

destinationIndex

integer

Indeks tujuan berbasis nol dalam permintaan.

RouteMatrixOrigin

Satu origin untuk ComputeRouteMatrixRequest

Representasi JSON
{
  "waypoint": {
    object (Waypoint)
  },
  "routeModifiers": {
    object (RouteModifiers)
  }
}
Kolom
waypoint

object (Waypoint)

Wajib. Titik jalan asal

routeModifiers

object (RouteModifiers)

Opsional. Pengubah untuk setiap rute yang menggunakan ini sebagai asal

RouteMatrixDestination

Tujuan tunggal untuk ComputeRouteMatrixRequest

Representasi JSON
{
  "waypoint": {
    object (Waypoint)
  }
}
Kolom
waypoint

object (Waypoint)

Wajib. Titik jalan tujuan

ExtraComputation

Komputasi tambahan yang akan dilakukan saat menyelesaikan permintaan.

Enum
EXTRA_COMPUTATION_UNSPECIFIED Tidak digunakan. Permintaan yang berisi nilai ini akan gagal.
TOLLS Informasi tarif untuk elemen matriks.

RouteMatrixElementCondition

Kondisi rute yang ditampilkan.

Enum
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED Hanya digunakan saat status elemen tidak berfungsi.
ROUTE_EXISTS Rute ditemukan, dan informasi yang sesuai diisi untuk elemen tersebut.
ROUTE_NOT_FOUND Rute tidak dapat ditemukan. Kolom yang berisi informasi rute, seperti distanceMeters atau duration, tidak akan diisi di elemen.

LocalizedValues

Representasi teks dari properti tertentu.

Representasi JSON
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
Kolom
distance

object (LocalizedText)

Jarak perjalanan ditampilkan dalam bentuk teks.

duration

object (LocalizedText)

Durasi yang ditampilkan dalam bentuk teks dengan mempertimbangkan kondisi traffic. Catatan: Jika informasi lalu lintas tidak diminta, nilai ini akan sama dengan nilai staticDuration.

staticDuration

object (LocalizedText)

Durasi ditampilkan dalam bentuk teks tanpa mempertimbangkan kondisi lalu lintas.

transitFare

object (LocalizedText)

Tarif transportasi umum ditampilkan dalam bentuk teks.