下面介绍了一些常见问题的排查提示。
为什么准确率半径非常大?
如果您的地理定位响应在 accuracy 字段中显示的值非常高,则该服务可能会根据请求 IP 而不是 Wi-Fi 热点或基站进行地理定位。如果该服务无法识别任何基站或接入点,则可能会出现此类响应。
如需确认该服务无法对您的接入点进行地理定位,请在请求中将 considerIp 设置为 false。如果响应为 404,则表示您已确认无法对 wifiAccessPoints 和 cellTowers 对象进行地理定位。
如何排查响应错误?
如果您的请求生成错误,系统会返回标准格式的错误响应正文,并将 HTTP 状态代码设置为错误状态。
错误响应包含一个对象,该对象包含一个具有以下键的错误对象:
code:这与响应的 HTTP 状态相同。message:对错误的简短说明。errors:发生的错误列表。每个错误都包含错误类型的标识符(原因)和简短说明(消息)。
例如,发送无效的 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。如需详细了解每个 字段,请参阅 请求正文部分。 |