【发布时间】:2020-05-29 12:18:42
【问题描述】:
我正在使用 Google Geolocation API 根据可见的手机信号塔来估算位置。但是,我总是得到与结果相同的位置。
使用以下正文:
{
"considerIp": false,
"radioType": "lte",
"cellTowers": [{
"signalStrength": -78,
"cellId": 133978007,
"mobileNetworkCode": 410,
"mobileCountryCode": 310,
"locationAreaCode": 27196
}]
}
产生以下结果:
{"location": {"lat": 31.968598800000002, "lng": -99.9018131}, "accuracy": 1457406}
该塔/单元的实际位置约为 (32.783062, 96.795769)。事实上,指定的信号塔是直接取自 OpenCellID 的数据库 (opencellid.org)
如果我随后选择其他地方的塔(例如帕洛阿尔托)
{
"considerIp": false,
"radioType": "lte",
"cellTowers": [{
"signalStrength": -78,
"cellId": 84785686,
"mobileNetworkCode": 480,
"mobileCountryCode": 311,
"locationAreaCode": 7943
}]
}
响应是:
{"location": {"lat": 31.968598800000002, "lng": -99.9018131}, "accuracy": 1457406}
完全一样。
如果我的公共 IP 可以(通过更改 VPN 端点位置),结果会改变。使用相同的帕洛阿尔托查询,但从德克萨斯州更改为芝加哥终端节点,我的结果更改为:
{"location": {"lat": 37.09024, "lng": -95.712891}, "accuracy": 1488703}
看来,considerIp=false 参数被忽略了,只是用来代替提供的手机信号塔。
任何想法如何解决这个问题? 谢谢!
【问题讨论】:
标签: geolocation google-geolocation