疑難排解

以下提供一些排解常見問題的訣竅。

為什麼精確度半徑很大?

如果 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"
 }
}

從裝置收集測試資訊

如要進行其他測試,您可以使用各平台提供的內建定位服務,從裝置收集資訊:

錯誤說明

以下是可能遇到的錯誤和說明。

原因 網域 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。如要進一步瞭解各個欄位,請參閱「要求主體」一節。