Pemecahan masalah

Error

Jika terjadi error, isi respons error format standar akan ditampilkan dan kode status HTTP akan disetel ke status error.

Respons berisi sebuah 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:

Code 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 lengkap, 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 besar penyebab error ini adalah:
  • Ada masalah dengan parameter path Anda.
    Pastikan Anda memiliki setidaknya 1, dan kurang dari 100 poin. Setiap titik harus berupa pasangan angka yang dipisahkan oleh koma, seperti: 48.409114,-123.369158. Titik harus dipisahkan dengan pipa: '|'.
  • Permintaan Anda menyertakan placeId yang tidak valid.
  • Permintaan Anda menyertakan placeId dan path. Hanya salah satu dari parameter ini yang dapat ditentukan untuk setiap permintaan.

Error ini tidak akan ditampilkan jika placeId diteruskan untuk jalan yang sudah tidak ada, atau untuk tempat yang bukan jalan.

403 PERMISSION_DENIED Permintaan tidak terdaftar diblokir. Daftar menggunakan Google Developers Console. Permintaan ditolak karena satu atau beberapa alasan berikut:
  • Kunci API tidak ada atau tidak valid.
  • Penagihan belum diaktifkan di akun Anda.
  • Batas penggunaan yang Anda tetapkan sendiri telah terlampaui.
  • Metode pembayaran yang diberikan sudah tidak valid (misalnya, kartu kredit sudah tidak berlaku).

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 ke http://roads.googleapis.com/.
429 RESOURCE_EXHAUSTED Permintaan tersebut dihambat karena batas permintaan project telah tercapai. Anda telah melebihi 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 agar satu atau sekelompok kecil pengguna tidak menghabiskan kuota harian Anda, sekaligus tetap memungkinkan akses yang wajar ke semua pengguna. Lihat bagian 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 akan membanjiri server Google, karena banyak klien yang mencoba mengulangi permintaan 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 batasan 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 telah diikat?
Untuk memastikan jalur yang diikat mengikuti jalan di semua tingkat zoom, bahkan pada tingkat zoom maksimum, Anda harus menyimpan pasangan garis lintang/bujur yang diikat pada 7 angka presisi di 7 desimal.
Dapatkah saya menggunakan polyline yang dienkode untuk menampilkan jalur yang diikat?
Polyline yang dienkodekan hanya ditentukan dengan presisi 5 angka di belakang koma, yang menghasilkan error sekitar 2 meter. Polyline yang dienkodekan demikian tidak cocok jika Anda ingin jalur yang telah diikat mengikuti jalan pada tingkat zoom tinggi.

Masalah umum

Beberapa titik tidak terbaca, atau ada celah di jalur yang terpotong. Bagaimana cara memperbaiki hal ini?
  • Jika Anda mengambil sampel titik dengan interval waktu, pastikan titik diambil sampelnya pada interval yang lebih singkat (setiap 1-10 detik). Jika interval yang lebih panjang digunakan (misalnya 60 detik), algoritme snap-to-road mungkin tidak dapat menentukan jalan yang 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 Roads atau gunakan Roads inspector untuk menguji jalur Anda.
Mengapa jalur yang saya pikat bergejolak atau agak meleset dari jalan saat saya memperbesar?
  • Apakah Anda memotong presisi pasangan garis lintang/bujur yang telah diikat sebelum menampilkannya? Menyimpan pasangan garis lintang/garis bujur yang diikat dengan presisi kurang dari 7 titik desimal menyebabkan error presisi saat jalur yang diikat ditampilkan pada peta.
  • Apakah Anda menggunakan polyline yang dienkode? Polyline yang dienkodekan memotong pasangan garis lintang/bujur menjadi 5 angka di belakang koma, yang mengakibatkan error beberapa meter, sehingga menghasilkan garis bergerigi atau sedikit meleset dari jalan pada tingkat zoom yang tinggi.

Jika tidak satu pun dari hal di atas yang sesuai, ubin peta mungkin diperbarui baru-baru ini, sehingga menyebabkannya tidak sinkron dengan indeks jalan yang digunakan untuk snap. Jika hanya beberapa kueri Anda yang terpengaruh, kemungkinan ini adalah penyebabnya. Karena Google Maps diperbarui 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 menyematkan ulang jalur lama tepat sebelum menampilkannya pada peta, untuk meminimalkan inkonsistensi antara ubin peta dan indeks jalan yang digunakan untuk snap.

Apa yang dapat menyebabkan batas kecepatan untuk jalan X ditampilkan dengan tidak 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 salah, lakukan langkah-langkah berikut untuk memberi tahu kami:
  1. Buka Google Maps di komputer desktop ATAU aplikasi Google Maps untuk Android.
  2. Buka menu sebelah kiri.
  3. Pilih Kirim masukan. Catatan: Anda mungkin akan diminta untuk login.
  4. Pilih Edit peta.
  5. Pilih segmen jalan yang ingin Anda edit.
  6. Pilih Berikutnya.
  7. Di kolom "Lainnya", tunjukkan bahwa batas kecepatan untuk jalan tersebut salah.
  8. Pilih Kirim.
Anda juga dapat melaporkan masalah lainnya di sini (misalnya jika nama jalan salah, gambarnya salah, atau ditutup, atau pribadi).
Mengapa jalur yang saya lewati memotong sudut, bukan mengikuti jalan?
Untuk memperbaiki masalah ini, periksa hal berikut:
  • Pastikan parameter interpolate disetel ke true.
  • Pastikan titik data asli Anda diambil sampelnya pada interval yang cukup dekat (setiap 1-10 detik).
Mengapa saya mendapatkan banyak segmen jalan yang ditampilkan di jalur snap untuk jalan tanpa perubahan batas kecepatan?
Jika parameter interpolate ditetapkan ke true, kueri snap-to-road menampilkan polyline yang mengikuti jalan di sekitar sudut, lengkungan, dan bundaran. Jika kurva jalan, beberapa segmen jalan akan ditampilkan meskipun batas kecepatan tidak berubah, untuk membuat polyline yang mengikuti geometri jalan lebih dekat.