Saat menghitung rute, Routes API menggunakan titik jalan dan parameter konfigurasi yang Anda berikan sebagai input. Kemudian, API akan menampilkan respons yang berisi rute default dan satu atau beberapa rute alternatif.
Respons Anda dapat mencakup berbagai jenis rute dan data lainnya, berdasarkan kolom yang Anda minta:
Untuk menyertakannya dalam respons | Lihat dokumentasi ini |
---|---|
Rute yang paling hemat bahan bakar atau energi berdasarkan jenis mesin kendaraan. | Mengonfigurasi Rute yang ramah lingkungan |
Hingga tiga rute alternatif | Minta rute alternatif |
Polyline untuk seluruh rute, untuk setiap sesi rute, dan untuk setiap langkah sesi. | Meminta polyline rute |
Estimasi biaya tol, dengan mempertimbangkan diskon harga tol atau kartu tol yang tersedia untuk pengemudi atau kendaraan. | Menghitung biaya tol |
Respons yang dilokalkan menurut kode bahasa dan satuan pengukuran (imperial atau metrik). | Meminta nilai yang dilokalkan |
Untuk memformat petunjuk navigasi sebagai string teks HTML, tambahkan HTML_FORMATTED_NAVIGATION_INSTRUCTIONS ke
extraComputations . |
Komputasi Ekstra |
Untuk daftar lengkap opsi input, lihat Opsi rute yang tersedia dan Isi permintaan.
Dengan menggunakan respons, Anda dapat memberikan informasi yang diperlukan kepada pelanggan untuk memilih rute yang sesuai dengan kebutuhan mereka.
Tentang mask kolom
Saat memanggil metode untuk menghitung rute, Anda harus menentukan mask kolom yang menentukan kolom yang ingin ditampilkan dalam respons. Tidak ada daftar kolom default yang ditampilkan. Jika Anda menghapus daftar ini, metode akan menampilkan error.
Contoh dalam dokumen ini menunjukkan seluruh objek respons tanpa mempertimbangkan masker kolom. Di lingkungan produksi, respons Anda hanya akan menyertakan kolom yang Anda tentukan secara eksplisit dalam mask kolom.
Untuk mengetahui informasi selengkapnya, lihat Memilih informasi yang akan ditampilkan.
Tentang menampilkan hak cipta
Anda harus menyertakan pernyataan hak cipta berikut saat menampilkan hasil kepada pengguna Anda:
Powered by Google, ©YEAR Google
Contoh:
Powered by Google, ©2023 Google
Tentang rute, segmen, dan langkah
Sebelum melihat respons yang ditampilkan oleh Routes API, Anda harus memahami komponen yang membentuk rute:
Respons Anda dapat berisi informasi tentang setiap komponen rute berikut:
Rute: Seluruh perjalanan dari titik jalan asal, melalui titik jalan perantara, hingga titik jalan tujuan. Rute terdiri dari satu atau beberapa segmen.
Segmen: Jalur dari satu titik jalan di rute ke titik jalan berikutnya di rute. Setiap segmen terdiri dari satu atau beberapa langkah terpisah.
Rute berisi segmen terpisah untuk jalur dari setiap titik jalan ke titik jalan berikutnya. Misalnya, jika rute berisi satu titik jalan asal dan satu titik jalan tujuan, maka rute tersebut berisi satu segmen. Untuk setiap titik jalan tambahan yang Anda tambahkan ke rute setelah titik awal dan tujuan, yang disebut titik jalan perantara, API akan menambahkan segmen terpisah.
API tidak menambahkan segmen untuk titik jalan perantara lewat. Misalnya, rute yang berisi titik jalan asal, titik jalan perantara yang dilewati, dan titik jalan tujuan hanya berisi satu segmen dari asal ke tujuan, sambil melewati titik jalan. Untuk mengetahui informasi selengkapnya tentang titik jalan teruskan, lihat Menentukan titik jalan teruskan.
Langkah: Satu petunjuk di sepanjang segmen rute. Langkah adalah satuan terkecil rute. Misalnya, langkah dapat menunjukkan "Belok kiri di Main Street".
Isi respons
Objek JSON yang merepresentasikan respons API berisi properti tingkat teratas berikut:
routes
, array elemen berjenis Route. Arrayroutes
berisi satu elemen untuk setiap rute yang ditampilkan oleh API. Array dapat berisi maksimal lima elemen: rute default, rute ramah lingkungan, dan hingga tiga rute alternatif.geocodingResults
, array elemen berjenis GeocodingResults. Untuk setiap lokasi dalam permintaan (asal, tujuan, atau titik jalan perantara) yang Anda tentukan sebagai string alamat atau sebagai Kode plus, API akan melakukan penelusuran ID tempat. Setiap elemen array ini berisi ID tempat yang sesuai dengan lokasi. Lokasi dalam permintaan yang ditentukan sebagai ID tempat atau sebagai koordinat lintang/bujur tidak disertakan. Jika Anda telah menentukan semua lokasi menggunakan ID tempat atau koordinat lintang dan bujur, array ini tidak disediakan.fallbackInfo
, dari jenis FallbackInfo. Jika API tidak dapat menghitung rute dari semua properti input, API mungkin melakukan penggantian ke cara penghitungan yang berbeda. Saat mode penggantian digunakan, kolom ini berisi info mendetail tentang respons penggantian. Jika tidak, kolom ini tidak disetel.
Respons memiliki bentuk:
{ // The routes array. "routes": [ { object (Route) } ], // The place ID lookup results. "geocodingResults": [ { object (GeocodedWaypoint) } ], // The fallback property. "fallbackInfo": { object (FallbackInfo) } }
Menguraikan array rute
Respons berisi array routes
, di mana setiap elemen array berjenis
Route.
Setiap elemen array mewakili seluruh rute dari asal ke tujuan. API selalu menampilkan setidaknya satu rute, yang disebut rute default.
Anda dapat meminta rute tambahan. Jika Anda meminta rute ramah lingkungan, array dapat berisi dua elemen: rute default dan rute ramah lingkungan. Atau, tetapkan computeAlternativeRoutes
ke
true
dalam permintaan untuk menambahkan hingga tiga rute alternatif ke respons.
Setiap rute dalam array diidentifikasi dengan properti array routeLabels
:
Nilai | Deskripsi |
---|---|
DEFAULT_ROUTE |
Mengidentifikasi rute default. |
FUEL_EFFICIENT |
Mengidentifikasi rute ramah lingkungan. |
DEFAULT_ROUTE_ALTERNATE |
Indicates rute alternatif. |
Array legs
berisi definisi setiap segmen rute. Properti
lainnya, seperti distanceMeters
, duration
, dan polyline,
berisi
informasi tentang rute secara keseluruhan:
{ "routeLabels": [ enum (RouteLabel) ], "legs": [ { object (RouteLeg) } ], "distanceMeters": integer, "duration": string, "routeLabels": [string], "staticDuration": string, "polyline": { object (Polyline) }, "description": string, "warnings": [ string ], "viewport": { object (Viewport) }, "travelAdvisory": { object (RouteTravelAdvisory) } "routeToken": string }
Karena kondisi mengemudi saat ini dan faktor lainnya, rute default dan
rute ramah lingkungan dapat sama. Dalam hal ini, array routeLabels
berisi kedua label: DEFAULT_ROUTE
dan FUEL_EFFICIENT
.
{ "routes": [ { "routeLabels": [ "DEFAULT_ROUTE", "FUEL_EFFICIENT" ], … } ] }
Memahami array legs
Setiap route
dalam respons berisi array legs
, dengan setiap elemen array legs
berjenis
RouteLeg.
Setiap segmen dalam array menentukan jalur dari satu titik jalan ke titik jalan berikutnya di sepanjang rute. Rute selalu berisi minimal satu segmen.
Properti legs
berisi definisi setiap langkah di sepanjang segmen dalam array
steps
. Properti yang tersisa, seperti distanceMeters
, duration
, dan polyline
berisi informasi tentang segmen.
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "steps": [ { object (RouteLegStep) } ], "travelAdvisory": { object (RouteLegTravelAdvisory) } }
Memahami array langkah
Setiap segmen dalam respons berisi array steps
, dengan setiap elemen array steps
berjenis
RouteLegStep.
Langkah sesuai dengan satu petunjuk di sepanjang kaki. Rute selalu berisi
setidaknya satu langkah.
Setiap elemen dalam array steps
mencakup properti navigationInstruction
, dengan jenis
NavigationInstruction,
yang berisi petunjuk langkah. Contoh:
"navigationInstruction": { "maneuver": "TURN_LEFT", "instructions": "Turn left toward Frontage Rd" }
instructions
mungkin berisi informasi tambahan tentang langkah tersebut. Contoh:
"navigationInstruction": { "maneuver": "TURN_SLIGHT_LEFT", "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days" }
Properti yang tersisa dalam langkah ini menjelaskan informasi tentang langkah tersebut, seperti distanceMeters
, duration
, dan polyline
:
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "navigationInstruction": { object (NavigationInstruction) } }
Menentukan bahasa petunjuk langkah
API menampilkan informasi rute dalam bahasa lokal, yang ditransliterasi ke dalam skrip yang dapat dibaca oleh pengguna, jika perlu, sambil mengamati bahasa pilihan. Semua komponen alamat ditampilkan dalam bahasa yang sama.
Gunakan parameter
languageCode
dari permintaan untuk menetapkan bahasa rute secara eksplisit dari daftar bahasa yang didukung. Google sering memperbarui bahasa yang didukung, sehingga daftar ini mungkin tidak lengkap.Jika nama tidak tersedia dalam bahasa yang ditentukan, API akan menggunakan kecocokan terdekat.
Bahasa yang ditentukan dapat memengaruhi kumpulan hasil yang dipilih dan urutan hasil yang ditampilkan oleh API. Geocoder menafsirkan singkatan secara berbeda bergantung pada bahasa, seperti singkatan untuk jenis jalan, atau sinonim yang mungkin valid dalam satu bahasa, tetapi tidak dalam bahasa lain. Misalnya, utca dan tér adalah sinonim untuk jalan dalam bahasa Hungaria.
Memahami array geocodingResults
Untuk setiap lokasi dalam permintaan (asal, tujuan, atau titik jalan
menengah) yang ditentukan sebagai string alamat atau sebagai Kode plus, API akan mencoba menemukan lokasi yang paling relevan yang memiliki ID tempat yang sesuai. Setiap elemen array
geocodingResults
berisi kolom placeID
yang berisi lokasi sebagai ID tempat dan kolom type
yang menentukan jenis
lokasi, seperti street_address
, premise
, atau airport
.
Array geocodingResults
berisi tiga kolom:
origin
: Jika ditentukan sebagai string alamat atau sebagai Plus Code, ID tempat asal. Jika tidak, kolom ini akan dihilangkan dari respons.destination
: Jika ditentukan sebagai string alamat atau sebagai Plus Code, ID tempat tujuan. Jika tidak, kolom ini akan dihilangkan dari respons.intermediates
: Array yang berisi ID tempat dari titik jalan perantara yang ditentukan sebagai string alamat atau sebagai Plus Code. Jika Anda menentukan titik jalan antara menggunakan ID tempat atau koordinat lintang dan bujur, titik jalan tersebut akan dihilangkan dari respons. Gunakan propertiintermediateWaypointRequestIndex
dalam respons untuk menentukan titik jalan perantara mana dalam permintaan yang sesuai dengan ID tempat dalam respons.
"geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "destination": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string } ] }
Memahami nilai respons yang dilokalkan
Nilai respons yang dilokalkan adalah kolom respons tambahan yang menyediakan teks yang dilokalkan untuk nilai parameter yang ditampilkan. Teks yang dilokalkan disediakan untuk durasi perjalanan, jarak, dan sistem unit (metrik atau imperial). Anda meminta nilai yang dilokalkan menggunakan mask kolom, dan dapat menentukan sistem unit dan bahasa atau menggunakan nilai yang disimpulkan oleh API. Untuk mengetahui detailnya, lihat LocalizedValues.
Misalnya, jika Anda menentukan kode bahasa untuk Jerman (de) dan satuan imperial, Anda akan mendapatkan nilai distanceMeters
sebesar 49889,7, tetapi juga teks yang dilokalkan yang memberikan pengukuran jarak tersebut dalam satuan imperial dan bahasa Jerman, yaitu "31 Meile".
Berikut adalah contoh tampilan nilai yang dilokalkan:
{ "localized_values": { "distance": { "text": "31,0 Meile/n" }, "duration": { "text": 38 Minuten}. "static_duration": { "text": 36 Minuten}. } }
Jika Anda tidak menentukan bahasa atau sistem satuan, API akan menyimpulkan bahasa dan satuan sebagai berikut:
- Metode
ComputeRoutes
menyimpulkan satuan lokasi dan jarak dari titik jalan asal. Jadi, untuk permintaan pemilihan rute di Amerika Serikat, API menyimpulkan bahasaen-US
dan satuanIMPERIAL
. - Metode
ComputeRouteMatrix
secara default menggunakan bahasa 'en-US' dan satuan METRIK.