我正在使用谷歌API将wifi数据转换为位置数据,使用POST方法
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地址,然后现在返回相同的响应。 在上面的例子中,我们使用谷歌示例中使用的mac地址。但是我们之前也尝试了那些我们获取数据的那些。
答案 0 :(得分:1)
404: Not found
错误响应意味着没有返回任何结果。但是,您的请求有效。
您应该假设在某些情况下,地理定位将失败,您应该构建一个异常处理组件,如果地理定位发生错误,该组件不会失败。即使由于错误或用户拒绝浏览器提供该位置的权限而未正确获取当前位置,您的应用程序仍应继续运行。
要确认这是问题,请在请求中将considerIp
设置为false。如果回复是404
,则您已确认无法对您的wifiAccessPoints和cellTowers对象进行地理定位。
答案 1 :(得分:0)
https://developers.google.com/maps/documentation/geolocation/intro
请求正文的wifiAccessPoints数组必须包含两个或多个WiFi接入点对象。 macAddress是必需的;其他所有字段都是可选的。
对于我所看到的,您需要在第二个wifiAccessPoint中使用一个macAddress。