Google Geolocation API 总是返回相同的位置,不管 cellTower 是不是指定

Posted

技术标签:

【中文标题】Google Geolocation API 总是返回相同的位置,不管 cellTower 是不是指定【英文标题】:Google Geolocation API is always returning the same location regardless of cellTower specifiedGoogle Geolocation API 总是返回相同的位置,不管 cellTower 是否指定 【发布时间】: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 可以(通过更改 *** 端点位置),结果会改变。使用相同的帕洛阿尔托查询,但从德克萨斯州更改为芝加哥终端节点,我的结果更改为: "location": "lat": 37.09024, "lng": -95.712891, "accuracy": 1488703

看来,considerIp=false 参数被忽略了,只是用来代替提供的手机信号塔。

任何想法如何解决这个问题? 谢谢!

【问题讨论】:

【参考方案1】:

我想通了。显然,如果没有将 Content-Type 显式设置为 application/json,则正文将被静默忽略,仅考虑本地 IP。

我想请求 Google 更新 API 响应正文以包含相关内容。

【讨论】:

以上是关于Google Geolocation API 总是返回相同的位置,不管 cellTower 是不是指定的主要内容,如果未能解决你的问题,请参考以下文章

使用 Geolocation 和 Google Maps API [帮助]

在没有 Google API 的情况下使用浏览器 GeoLocation?

Google Geolocation API 和 Google Maps Android SDK

Google Maps Geolocation API 的替代方案

Google Maps Geolocation API 准确性

用于 wifiAccessPoints 的 Google Maps Geolocation API 返回未找到的地理位置