疑難排解
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
以下提供一些提示,協助排解常見問題。
為什麼精確度半徑很大?
如果「Geolocation」回應的準確度欄位顯示非常高的值,服務可能正在根據要求 IP 進行地理位置查詢,而非 Wi-Fi 存取點或行動通信基地台。如果服務無法辨識任何基地台或存取點,就可能發生這類情況。
如要確認服務無法對存取點進行地理位置查詢,請在要求中將 considerIp
設為 false。如果回應為 404,表示系統無法根據 wifiAccessPoints 和 cellTowers 物件進行地理位置定位。
如何排解回應錯誤?
如果要求產生錯誤,系統會傳回標準格式的錯誤回應主體,並將 HTTP 狀態碼設為錯誤狀態。
錯誤回應包含一個物件,該物件具有單一錯誤物件,並包含下列鍵:
code
:這與回應的 HTTP 狀態相同。
message
:錯誤的簡短說明。
errors
:發生錯誤的清單。每個錯誤都包含錯誤類型 (原因) 的 ID 和簡要說明 (訊息)。
舉例來說,傳送無效的 JSON 會傳回下列錯誤:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error",
}
],
"code": 400,
"message": "Parse Error"
}
}
如要進行額外測試,可以使用下列 SDK 和 API 從裝置收集資訊:
錯誤說明
以下是您可能會遇到的錯誤,以及相關說明。
原因 |
網域 |
HTTP 狀態碼 |
說明 |
dailyLimitExceeded |
usageLimits |
403 |
你已超過每日上限。 |
keyInvalid |
usageLimits |
400 |
您的 API 金鑰不適用於 Geolocation API。請務必加入完整金鑰,並確認您已購買 API,或啟用帳單並啟動 API,以免費取得配額。 |
userRateLimitExceeded |
usageLimits |
403 |
您已超出在 Google Cloud 控制台中設定的要求限制。這類限制通常會設為每日要求數、每 100 秒要求數,以及每位使用者每 100 秒要求數。您應設定限制,避免單一或少數使用者耗盡每日配額,同時確保所有使用者都能合理存取。如要設定這些限制,請參閱「限制 API 用量」一文。 |
notFound |
geolocation |
404 |
要求有效,但未傳回任何結果。 |
parseError |
global |
400 |
要求內文不是有效的 JSON。如要瞭解各個欄位的詳細資訊,請參閱「要求主體」一節。 |
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-31 (世界標準時間)。
[null,null,["上次更新時間:2025-08-31 (世界標準時間)。"],[[["\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. |"]]