【发布时间】:2019-09-20 13:55:29
【问题描述】:
我正在使用 Quectel EG25-G 调制解调器在 Siemens IOT2040 设备(带有 Yocto Linux 操作系统)中访问 Internet。该调制解调器配置正确,因为我访问 Internet 没有任何问题。 Quectel EG25-G 调制解调器有一张 SIM 卡。我已经配置了 PPP 协议来访问 Internet。
现在我想知道使用 Google API 的地理位置,但我没有收到很好的响应。
这是我运行的命令: curl -d @your_filename.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=_MY_KEY_"
在答案中我没有任何错误:
{
"location": {
"lat": 42.4340209,
"lng": 2.8666571999999997
},
"accuracy": 2818.0
}
问题是坐标距离我所在的位置有 500 公里远,准确度说误差只有 2818 米。
我正在使用这个 your_filename.json :
{
"cellTowers": [...]
}
在 cellTowers 我有很多来自西班牙的手机信号塔。
首先,我从https://www.radiocells.org/country/es下载了包含这些信息的SQL表
然后,我在https://sqliteonline.com中进行了查询以重新组织此信息
CAST(cid AS INT) as cellId,
CAST(area AS INT) as locationAreaCode,
CAST(mcc AS INT) AS mobileCountryCode,
CAST(mnc AS INT) AS mobileNetworkCode
FROM cell_zone
WHERE area IS not -1
最后,我将 JSON 格式的查询响应粘贴到“cellTowers”:。
我不知道为什么我会收到来自 Google Maps API 的错误响应。
谢谢!
【问题讨论】:
-
您应该发送您的设备当前可以从当前位置看到的手机信号塔 - 而不仅仅是西班牙的随机手机信号塔列表 - 这可能只会给您西班牙的质心或随机位置。
-
来自文档:为什么我的地理位置响应中的精度半径非常大?如果您的 Geolocation 响应在准确度字段中显示非常高的值,则服务可能基于请求 IP 进行地理定位,而不是 WiFi 点或手机信号塔。如果没有蜂窝塔或接入点有效或被识别,则可能发生这种情况。要确认这是问题所在,请在您的请求中将考虑 Ip 设置为 false。如果响应为 404,则您已确认您的 wifiAccessPoints 和 cellTowers 对象无法进行地理定位。
标签: api maps coordinates google-geolocation