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
: Sama seperti status HTTP respons.message
: Deskripsi singkat tentang 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 selengkapnya, dan telah mengaktifkan API untuk kunci ini. |
400 | INVALID_ARGUMENT |
"Parameter \"path\" berisi nilai yang tidak valid: ☃" | Permintaan Anda berisi argumen yang tidak valid. Penyebab paling mungkin
error ini adalah:
Error ini tidak akan ditampilkan jika |
403 | PERMISSION_DENIED |
Permintaan tidak terdaftar telah diblokir. Daftarlah 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 |
HTTPS diperlukan untuk layanan ini. | Pastikan Anda mengirim permintaan ke
https://roads.googleapis.com/ , bukan
http://roads.googleapis.com/ . |
429 | RESOURCE_EXHAUSTED |
Permintaan tersebut terhambat karena batas permintaan project telah tercapai. | Anda telah melebihi batas permintaan yang Anda konfigurasikan 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, dan sekaligus tetap memungkinkan akses yang semestinya untuk semua pengguna. Lihat Membatasi Penggunaan API untuk mengonfigurasi batas ini. |
Backoff eksponensial
Jika permintaan gagal, pastikan Anda mencoba kembali 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 beberapa kali permintaan tersebut dengan sangat cepat.
FAQ Pemecahan Masalah
Masalah penerapan
- Berapa frekuensi yang harus saya gunakan untuk mengambil sampel lokasi kendaraan?
- Sebaiknya setiap 1-10 detik untuk hasil snap-to-road berkualitas tinggi.
- Apakah ada batasan jumlah titik yang dapat saya kirim per kueri?
- Ya, kueri dapat memiliki maksimal 100 titik.
- Tingkat presisi apa yang harus saya gunakan untuk menyimpan pasangan lintang/bujur snapped saya?
- Untuk memastikan bahwa jalur yang diambil mengikuti jalan di semua tingkat zoom, bahkan pada tingkat zoom maksimum, Anda harus menyimpan pasangan lintang/bujur yang diambil dengan presisi 7 tempat desimal.
- Dapatkah saya menggunakan polyline yang dienkode untuk menampilkan jalur yang tersambung?
- Polyline yang dienkode hanya ditentukan dengan presisi 5 tempat desimal, yang menghasilkan error sekitar 2 meter. Oleh karena itu, polyline yang dienkode tidak cocok jika Anda ingin jalur yang diambil mengikuti jalan pada tingkat zoom tinggi.
Masalah umum
- Beberapa titik tidak tersambung, atau saya memiliki celah di jalur yang tersambung. Bagaimana cara memperbaikinya?
-
- Jika Anda mengambil sampel titik pada interval waktu, pastikan titik tersebut diambil sampelnya pada interval yang lebih singkat (setiap 1-10 detik). Jika interval yang lebih lama digunakan (misalnya 60 detik), algoritma snap-to-road mungkin tidak dapat menentukan jalan yang dilalui dengan akurasi yang memadai.
- Jika Anda mengklik peta secara manual untuk membuat titik, sangat mudah untuk membuat jalur dengan sedikit titik atau titik jarang yang tidak ditangani dengan baik oleh algoritma snap. Algoritme snap berfungsi paling baik untuk titik yang berdekatan. Coba demo Snap to Roads atau gunakan Roads inspector untuk menguji jalur Anda.
- Mengapa jalur yang diambil tidak rata atau sedikit menyimpang dari jalan saat saya memperbesar?
-
- Apakah Anda memotong presisi pasangan lintang/bujur yang diambil sebelum menampilkannya? Menyimpan pasangan lintang/bujur yang diambil dengan presisi kurang dari 7 titik desimal akan menyebabkan error presisi saat jalur yang diambil ditampilkan di peta.
- Apakah Anda menggunakan polyline yang dienkodekan? Polyline yang dienkode memotong pasangan lintang/bujur menjadi 5 tempat desimal, yang menyebabkan error beberapa meter, sehingga menghasilkan garis yang tidak rata atau sedikit menyimpang dari jalan pada tingkat zoom tinggi.
Jika tidak ada yang sesuai dengan hal di atas, ubin peta mungkin telah diperbarui baru-baru ini, sehingga tidak sinkron dengan indeks jalan yang digunakan untuk snapping. Jika hanya beberapa kueri Anda yang terpengaruh, hal ini mungkin menjadi penyebabnya. Karena Google Maps diperbarui secara rutin, hal ini dapat 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 mengambil kembali jalur lama tepat sebelum menampilkannya di peta, untuk meminimalkan inkonsistensi antara ubin peta dan indeks jalan yang digunakan untuk mengambil gambar.
- Apa yang dapat menyebabkan batas kecepatan untuk jalan X ditampilkan secara salah?
- Batas kecepatan berasal dari beberapa sumber yang bervariasi dalam akurasi dan cakupan.
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 untuk jalan tersebut salah.
- Pilih Kirim.
- Mengapa jalur yang saya ambil memotong sudut, bukan mengikuti jalan?
-
Untuk memperbaiki masalah ini, periksa hal berikut:
- Pastikan parameter
interpolate
ditetapkan 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 di jalur yang tersambung untuk jalan tanpa perubahan batas kecepatan?
- Jika parameter
interpolate
ditetapkan ketrue
, kueri snap-to-road akan menampilkan polyline yang mengikuti jalan di sekitar tikungan, tikungan, dan lingkaran. Jika jalan berkelok, beberapa segmen jalan akan dikembalikan meskipun batas kecepatan tidak berubah, untuk membuat polyline yang mengikuti geometri jalan dengan cermat.