Google GeoLocation API存在的问题

时间:2013-07-22 01:45:01

标签: java google-maps google-maps-api-3 geolocation

我正在尝试使用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(使用列出的标准HTTP连接here

将此数据作为POST请求传递

1 个答案:

答案 0 :(得分:0)

如果您查看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
    }]
}