1

我正在尝试使用 Google GeoLocation API 根据 WiFi 接入点详细信息获取位置坐标。问题是我总是为每个请求返回相同的坐标。我将 JSON 请求传递到的 URL 是:https://www.googleapis.com/geolocation/v1/geolocate?key=MY_API

我传递的 JSON 数据是:

{
    "radioType":"wcdma",
    "homeMobileNetworkCode":"0",
    "homeMobileCountryCode":"234",
    "carrier":"BT",
    "wifiAccessPoints":
    {
        "signalStrength":-73,
        "age":0,
        "macAddress":"BSSID HERE",
        "channel":6
    }
}

我是英国人,这就是我将 MNC 设置为 234 的原因。此外,我只能将 wifi 用于定位服务,因为当前配置中没有安装 GPS。我总是从 Google 收到的回复是:

{ 
    "location": 
    {  
        "lat": 51.517098999999995,  
        "lng": -0.146084 
    }, 
    "accuracy": 18000.0
}

无论我作为请求传递的任何 BSSID 是什么,我都会收到我所有请求的响应。你能告诉我我在这里做错了什么吗?我使用 Java 将这些数据作为 POST 请求传递(使用此处列出的标准 HTTP 连接)

4

1 回答 1

0

如果您查看 Google Geolocation API 文档: https ://developers.google.com/maps/documentation/business/geolocation/#cell_tower_object

您可以看到“cellTowers”和“wifiAccessPoints”部分设置为使用 JSON 数组。

因此,要修复您的示例,它应该如下所示:

{
    "radioType":"wcdma",
    "homeMobileNetworkCode":"0",
    "homeMobileCountryCode":"234",
    "carrier":"BT",
    "wifiAccessPoints":
    [{
        "signalStrength":-73,
        "age":0,
        "macAddress":"BSSID HERE",
        "channel":6
    }]
}
于 2013-09-20T21:20:01.783 回答