我正在使用 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}
看起来 thinkIp=false 参数被忽略,并且仅使用它而不是提供的蜂窝塔。
任何想法如何解决这一问题?
谢谢!