1

我正在使用 google API 使用 POST 方法将 wifi 数据转换为位置数据

https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY

    {

  "considerIp": "false",
 "wifiAccessPoints": [
  {
   "macAddress": "01:23:45:67:89:AB",
   "signalStrength": 8,
   "age": 0,
   "signalToNoiseRatio": -65,
   "channel": 8
  },
 {
   "signalStrength": 4,
   "age": 0
  }
 ]
}

我得到的回应是

{
  "error": {
  "errors": [
   {
    "domain": "geolocation",
    "reason": "notFound",
    "message": "Not Found"
  }
],
"code": 404,
"message": "Not Found"
}
}

这与我之前使用的代码相同,我在上个月的测试中得到了纬度和经度。突然我得到这个失败的回应。我们甚至尝试过我们之前测试过的 Mac 地址,现在都返回相同的响应。在上面的示例中,我们使用的是 google 示例中使用的 mac 地址。但我们也尝试了我们之前获取数据的那些。

4

2 回答 2

1

404: Not found错误响应意味着没有返回任何结果。但是,您的请求是有效的。

您应该假设在某些情况下,地理定位将失败,并且您应该构建一个异常处理组件,如果地理定位确实发生错误,该组件不会失败。即使由于错误或用户拒绝浏览器提供位置的权限而未正确获取当前位置,您的应用程序也应继续运行。

要确认这是问题所在,considerIp请在您的请求中设置为 false。如果响应为404,则您已确认您的 wifiAccessPoints 和 cellTowers 对象无法进行地理定位。

于 2016-07-09T11:22:56.903 回答
0

https://developers.google.com/maps/documentation/geolocation/intro

请求正文的 wifiAccessPoints 数组必须包含两个或多个 WiFi 接入点对象。mac地址是必需的;所有其他字段都是可选的。

就我所见,您的第二个 wifiAccessPoint 中需要一个 macAddress。

于 2020-02-04T13:37:14.233 回答