Memecahkan masalah
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Berikut beberapa tips untuk memecahkan masalah umum.
Mengapa radius akurasi sangat besar?
Jika respons Geolocation Anda menunjukkan nilai yang sangat tinggi di kolom akurasi, layanan mungkin melakukan geolokasi berdasarkan IP permintaan, bukan titik WiFi atau menara BTS. Jenis respons ini dapat terjadi jika layanan tidak
mengenali menara seluler atau titik akses.
Untuk mengonfirmasi bahwa layanan tidak dapat menemukan geolokasi titik akses Anda, tetapkan
considerIp
ke false dalam permintaan Anda. Jika responsnya adalah 404, Anda telah mengonfirmasi bahwa objek wifiAccessPoints dan cellTowers Anda tidak dapat ditentukan geolokasinya.
Bagaimana cara memecahkan masalah error respons?
Jika permintaan Anda menghasilkan error, sistem akan menampilkan isi respons error format standar dan menetapkan kode status HTTP ke status error.
Respons error berisi objek dengan satu objek error dengan kunci berikut:
code
: Ini sama dengan status HTTP respons.
message
: Deskripsi singkat tentang error.
errors
: Daftar error yang terjadi. Setiap error berisi ID untuk
jenis error (alasan) dan deskripsi singkat (pesan).
Misalnya, mengirim JSON yang tidak valid akan menampilkan error berikut:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error",
}
],
"code": 400,
"message": "Parse Error"
}
}
Untuk pengujian tambahan, Anda dapat mengumpulkan informasi dari perangkat menggunakan SDK dan API berikut:
Deskripsi error
Berikut adalah kemungkinan error yang mungkin Anda alami beserta deskripsinya.
Alasan |
Domain |
Kode Status HTTP |
Deskripsi |
dailyLimitExceeded |
usageLimits |
403 |
Anda telah melebihi batas harian. |
keyInvalid |
usageLimits |
400 |
Kunci API Anda tidak valid untuk Geolocation API. Pastikan
untuk menyertakan seluruh kunci, dan Anda telah membeli API
atau telah mengaktifkan penagihan dan mengaktifkan API
untuk mendapatkan kuota tanpa biaya. |
userRateLimitExceeded |
usageLimits |
403 |
Anda telah melampaui batas permintaan yang dikonfigurasi di konsol Google Cloud.
Batas ini biasanya ditetapkan sebagai permintaan per hari, permintaan per 100 detik, dan permintaan per 100 detik per pengguna. Anda harus mengonfigurasi batas
untuk mencegah satu atau sekelompok kecil pengguna menghabiskan kuota harian Anda,
sekaligus tetap mengizinkan akses yang wajar bagi semua pengguna.
Lihat Membatasi Penggunaan API
untuk mengonfigurasi batas ini.
|
notFound |
geolocation |
404 |
Permintaan valid, namun tidak ada hasil yang dikembalikan. |
parseError |
global |
400 |
Tubuh permintaan bukan JSON yang valid. Lihat bagian
Isi Permintaan untuk mengetahui detail setiap
kolom. |
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-31 UTC.
[null,null,["Terakhir diperbarui pada 2025-08-31 UTC."],[[["\u003cp\u003eThe Geolocation API uses IP addresses, WiFi points, and cell towers to determine location, with large accuracy radius often indicating IP-based geolocation.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting involves examining the error response, which includes an error code, message, and a list of errors with reasons and descriptions.\u003c/p\u003e\n"],["\u003cp\u003eYou can gather additional testing information from devices using the Android Location APIs, Places SDK for Android and iOS.\u003c/p\u003e\n"],["\u003cp\u003ePossible errors include exceeding daily or user request limits, using an invalid API key, and requests returning no results despite being valid.\u003c/p\u003e\n"]]],["If a large accuracy radius is shown, the service may be using the request IP instead of cell towers or WiFi. Test by setting `considerIp` to false; a 404 response confirms no access points were found. Error responses include a `code` (HTTP status), `message`, and an `errors` list with `reason` and `message`. Common errors include `dailyLimitExceeded` (403), `keyInvalid` (400), `userRateLimitExceeded` (403), `notFound` (404), and `parseError` (400) due to invalid JSON.\n"],null,["# Troubleshoot\n\nHere are some tips on troubleshooting common issues.\n\nWhy is the accuracy radius very large?\n--------------------------------------\n\nIf your Geolocation response shows a very high value in the accuracy field, the\nservice may be geolocating based on the request IP, instead of WiFi points or\ncell towers. These kinds of responses can happen if the service does not\nrecognize any cell towers or access points.\n\nTo confirm that the service could not geolocate your access points, set\n`considerIp` to false in your request. If the response is a 404, you've\nconfirmed that your wifiAccessPoints and cellTowers objects could not be geolocated.\n\nHow do I troubleshoot a response error?\n---------------------------------------\n\nIf your request generates an error, the system returns a standard format error\nresponse body and sets the HTTP status code to an error status.\n\nThe error response contains an object with a single error object with the\nfollowing keys:\n\n- `code`: This is the same as the HTTP status of the response.\n- `message`: A short description of the error.\n- `errors`: A list of errors that occurred. Each error contains an identifier for the type of error (the reason) and a short description (the message).\n\nFor example, sending invalid JSON returns the following error: \n\n {\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"parseError\",\n \"message\": \"Parse Error\",\n }\n ],\n \"code\": 400,\n \"message\": \"Parse Error\"\n }\n }\n\nGather testing information from devices\n---------------------------------------\n\nFor additional testing, you can gather information from your device using the\nfollowing SDKs and APIs:\n\n- **Android devices** : Go to [Places SDK for Android](/maps/documentation/places/android-sdk/current-place), and [Android\n Location APIs](https://developer.android.com/training/location/index.html).\n\n- **iOS devices** : Go to [Places SDK for iOS](/maps/documentation/places/ios-sdk/current-place).\n\nError descriptions\n------------------\n\nHere are the possible errors you might encounter with descriptions.\n\n| Reason | Domain | HTTP Status Code | Description |\n|-------------------------|---------------|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `dailyLimitExceeded` | `usageLimits` | 403 | You have exceeded your [daily limit](/maps/documentation/geolocation/usage-and-billing#other-usage-limits). |\n| `keyInvalid` | `usageLimits` | 400 | Your API key is not valid for the Geolocation API. Be sure to include the entire key, and that you've either purchased the API or have [enabled billing and activated the API](/maps/documentation/geolocation/get-api-key) to obtain the quota at no charge. |\n| `userRateLimitExceeded` | `usageLimits` | 403 | You have exceeded the request limit that you configured in the Google Cloud console. This limit is typically set as requests per day, requests per 100 seconds, and requests per 100 seconds per user. You should configure your limit to prevent a single or small group of users from exhausting your daily quota, while still allowing reasonable access to all users. See [Capping API Usage](https://cloud.google.com/apis/docs/capping-api-usage) to configure these limits. |\n| `notFound` | `geolocation` | 404 | The request was valid, but no results were returned. |\n| `parseError` | `global` | 400 | The request body is not valid JSON. Refer to the [Request Body](/maps/documentation/geolocation/requests-geolocation#body) section for details on each field. |"]]