以下提供一些排解常見問題的訣竅。
為什麼精確度半徑很大?
如果 Geolocation 回應的精確度欄位值非常高,表示服務可能是根據要求 IP 進行地理定位,而非 Wi-Fi Point 或行動通信基地台。如果服務無法辨識任何行動通信基地台或存取點,就可能發生這類回應。
如要確認服務無法找出存取點的地理位置,請在要求中將 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"
}
}
從裝置收集測試資訊
如要進行其他測試,您可以使用各平台提供的內建定位服務,從裝置收集資訊:
Android 裝置:使用 LocationManager 或 整合式位置預測提供工具 API。
iOS 裝置:使用 Apple Core Location 架構。
錯誤說明
以下是可能遇到的錯誤和說明。
| 原因 | 網域 | 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。如要進一步瞭解各個欄位,請參閱「要求主體」一節。 |