我正在尝试使用 Google GeoLocation API 根据 WiFi 接入点详细信息获取位置坐标。问题是我总是为每个请求返回相同的坐标。
我将 JSON 请求传递到的网址是: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 连接 here )
最佳答案
如果您查看 Google 地理定位 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
}]
}
关于java - Google GeoLocation API 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17778791/