Error
Jika terjadi error, isi respons error format standar akan ditampilkan dan kode status HTTP akan disetel ke status error.
Respons berisi objek dengan satu objek error
dengan kunci
berikut:
code
: Ini sama dengan status HTTP respons.message
: Deskripsi singkat error.status
: Kode status yang menunjukkan sifat error.
Misalnya, mengirim parameter placeId
yang tidak valid akan menampilkan error berikut:
{ "error": { "code": 400, "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"", "status": "INVALID_ARGUMENT" } }
Kemungkinan kesalahan meliputi:
Kode | Status | Pesan | Pemecahan masalah |
---|---|---|---|
400 | INVALID_ARGUMENT |
Kunci yang Anda berikan tidak valid. | Kunci API Anda tidak valid atau tidak disertakan dalam permintaan. Pastikan Anda telah menyertakan kunci secara keseluruhan, dan telah mengaktifkan API untuk kunci ini. |
400 | INVALID_ARGUMENT |
Parameter "\"path\" berisi nilai yang tidak valid: ☃" | Permintaan Anda berisi argumen yang tidak valid. Kemungkinan penyebab error ini adalah:
Error ini tidak akan ditampilkan jika |
403 | PERMISSION_DENIED |
Permintaan tidak terdaftar telah diblokir. Daftar menggunakan Google Developers Console. | Permintaan ditolak karena satu atau beberapa alasan berikut:
Untuk menggunakan produk Google Maps Platform, penagihan harus diaktifkan di akun Anda, dan semua permintaan harus menyertakan kunci API yang valid. Untuk memperbaikinya, lakukan langkah-langkah berikut:
|
404 | NOT_FOUND |
Diperlukan HTTPS untuk layanan ini. | Pastikan Anda mengirim permintaan ke https://roads.googleapis.com/ , bukan http://roads.googleapis.com/ . |
429 | RESOURCE_EXHAUSTED |
Permintaan dibatasi karena batas permintaan project telah tercapai. | Anda telah melampaui batas permintaan yang dikonfigurasi di Google Cloud Platform Console. Batas ini biasanya ditetapkan sebagai permintaan per hari, permintaan per 100 detik, dan permintaan per 100 detik per pengguna. Batas ini harus dikonfigurasi untuk mencegah satu atau sekelompok kecil pengguna menghabiskan kuota harian Anda, sekaligus tetap memungkinkan akses yang wajar ke semua pengguna. Lihat Membatasi Penggunaan API untuk mengonfigurasi batas ini. |
Backoff eksponensial
Jika permintaan gagal, pastikan Anda mencoba lagi permintaan dengan backoff eksponensial. Misalnya, jika permintaan gagal satu kali, coba lagi setelah satu detik. Jika gagal lagi, coba lagi setelah dua detik, lalu empat detik, dan seterusnya. Hal ini memastikan permintaan yang rusak atau kegagalan berskala luas tidak membanjiri server Google, karena banyak klien yang akan mencoba lagi permintaan tersebut dengan sangat cepat.
FAQ Pemecahan Masalah
Masalah penerapan
- Pada frekuensi mana saya harus mengambil sampel lokasi kendaraan saya?
- Sebaiknya setiap 1-10 detik untuk mendapatkan hasil snap-to-road berkualitas tinggi.
- Apakah ada batas jumlah poin yang dapat saya kirim per kueri?
- Ya, kueri dapat memiliki maksimal 100 poin.
- Tingkat presisi apa yang harus saya gunakan untuk menyimpan pasangan garis lintang/bujur yang diikat?
- Untuk memastikan bahwa jalur yang diikat mengikuti jalan pada semua tingkat zoom, bahkan pada tingkat zoom maksimum, Anda harus menyimpan pasangan garis lintang/bujur yang diikat pada 7 tingkat presisi di belakang koma.
- Dapatkah saya menggunakan polyline yang dienkode untuk menampilkan jalur yang diikat?
- Polyline yang dienkodekan hanya ditentukan dengan presisi 5 angka desimal, yang menghasilkan error sekitar 2 meter. Dengan demikian, polyline yang dienkode tidak cocok jika ingin jalur yang diikat mengikuti jalan pada tingkat zoom yang tinggi.
Masalah umum
- Beberapa titik tidak tersangkut, atau ada celah di jalur yang putus. Bagaimana cara memperbaiki hal ini?
-
- Jika Anda mengambil sampel titik pada interval waktu, pastikan titik diambil sampelnya pada interval yang lebih singkat (setiap 1-10 detik). Jika menggunakan interval yang lebih panjang (misalnya 60 detik), algoritme snap-to-road mungkin tidak dapat menentukan jalan yang telah ditempuh dengan akurasi yang memadai.
- Jika Anda mengklik peta secara manual untuk membuat titik, sangat mudah untuk membuat jalur dengan beberapa titik atau titik sparse yang tidak ditangani dengan baik oleh algoritme snap. Algoritma snapping berfungsi paling baik untuk titik-titik yang berdekatan. Coba demo Snap to Road atau gunakan Roads inspector untuk menguji jalur Anda.
- Mengapa jalur saya yang diikat bergerigi atau agak meleset dari jalan saat saya memperbesarnya?
-
- Apakah Anda memotong presisi pasangan garis lintang/bujur yang diikat sebelum menampilkannya? Menyimpan pasangan garis lintang/bujur yang diikat dengan presisi kurang dari 7 titik desimal akan menyebabkan error presisi saat jalur yang diikat ditampilkan pada peta.
- Apakah Anda menggunakan polyline yang dienkode? Polyline yang dienkodekan akan memotong pasangan garis lintang/bujur menjadi 5 angka desimal, yang menghasilkan error hingga beberapa meter, sehingga menghasilkan garis bergerigi atau sedikit keluar dari jalan pada tingkat zoom yang tinggi.
Jika tidak satu pun hal di atas yang terjadi, ubin peta mungkin telah diperbarui baru-baru ini, yang menyebabkannya menjadi tidak sinkron dengan indeks jalan yang digunakan untuk snap. Jika hanya beberapa kueri Anda yang terpengaruh, kemungkinan inilah penyebabnya. Karena Google Maps diupdate secara rutin, hal ini mungkin terjadi sesekali, dan dapat terjadi lebih sering jika Anda secara rutin melihat jalur lama di peta (misalnya, jalur yang diambil beberapa minggu yang lalu). Untuk visualisasi yang optimal, Anda harus melakukan snap ulang jalur lama tepat sebelum menampilkannya di peta, untuk meminimalkan inkonsistensi antara ubin peta dan indeks jalan yang digunakan untuk snap.
- Apa yang dapat menyebabkan batas kecepatan untuk jalan X tidak ditampilkan dengan benar?
- Batas kecepatan berasal dari beberapa sumber yang akurasi dan cakupannya bervariasi.
Jika Anda menemukan pola, misalnya batas kecepatan untuk jenis jalan tertentu atau
di area tertentu yang terus-menerus salah, lakukan langkah-langkah berikut
untuk memberi tahu kami:
- Buka Google Maps di komputer desktop ATAU aplikasi Google Maps untuk Android.
- Buka menu sebelah kiri.
- Pilih Kirim masukan. Catatan: Anda mungkin diminta untuk login.
- Pilih Edit peta.
- Pilih segmen jalan yang ingin Anda edit.
- Pilih Berikutnya.
- Di kolom "Lainnya", tunjukkan bahwa batas kecepatan salah untuk jalan tersebut.
- Pilih Kirim.
- Mengapa jalur yang saya pintas seharusnya tidak mengikuti jalan?
-
Untuk memperbaiki masalah ini, periksa hal berikut:
- Pastikan parameter
interpolate
disetel ketrue
. - Pastikan titik data asli Anda diambil sampelnya dengan interval yang cukup dekat (setiap 1-10 detik).
- Pastikan parameter
- Mengapa saya mendapatkan banyak segmen jalan yang ditampilkan pada jalur putus-putus untuk jalan tanpa perubahan batas kecepatan?
- Jika parameter
interpolate
ditetapkan ketrue
, kueri snap-to-road akan menampilkan polyline yang mengikuti jalan di sudut, lengkungan, dan bundaran. Jika jalan melengkung, beberapa segmen jalan akan ditampilkan meskipun batas kecepatan tidak berubah, untuk membuat polyline yang mengikuti geometri jalan.