Java 谷歌地图地理定位API仅返回我阵列中第一座塔的位置

Java 谷歌地图地理定位API仅返回我阵列中第一座塔的位置,java,google-maps,Java,Google Maps,我试图利用谷歌地图地理定位API。我将一个只包含cell towers的JSON文件发布到https://www.googleapis.com/geolocation/v1/geolocate?key=MYKEY JSON示例: { "cellTowers":[ { "cellId":65535, "locationAreaCode":5160, "mobileCountryCode":234, "mobileNet

我试图利用谷歌地图地理定位API。我将一个只包含cell towers的JSON文件发布到
https://www.googleapis.com/geolocation/v1/geolocate?key=MYKEY

JSON示例:

{
    "cellTowers":[
    {
        "cellId":65535,
        "locationAreaCode":5160,
        "mobileCountryCode":234,
        "mobileNetworkCode":10,
        "signalStrength":-53
    },
    {
        "cellId":34177,
        "locationAreaCode":5160,
        "mobileCountryCode":234,
        "mobileNetworkCode":10,
        "signalStrength":-55
    }
]}
这已通过正确的JSON验证。但是,我在从API中获取像样的数据时遇到了问题

我已经使用ApacheHttpClient和HTTPPost库在Java中实现了POST。我得到了一个有效的回复,但它始终是cellTowers阵列中第一个cellTowers的LAT,LNG。就好像API正在读取第一个信号塔,获取位置,然后忽略其余部分一样。当然,我已经通过反转和洗牌列表验证了这是一种行为,并且每次响应都会更改到第一个位置。 这是我的密码:

HttpParams httpParams = new BasicHttpParams();
ConnRouteParams.setDefaultProxy(httpParams, new HttpHost(PROXY_HOST, PROXY_PORT));
HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);

HttpClient client = new DefaultHttpClient(httpParams);
HttpPost request = new HttpPost(GOOGLE_GEOLOCATION_API);
request.setHeader("Content-type", "application/json");

try {
    StringEntity se = new StringEntity(json);
    request.setEntity(se);

    HttpResponse response = client.execute(request);
    if(response!=null){
        String jsonResult = EntityUtils.toString(response.getEntity());
        GeolocationResponse geolocationResponse = gson.fromJson(jsonResult, GeolocationResponse.class);

        logger.info(jsonResult);
        logger.info("Est. Location: " + geolocationResponse.toString());
    }
} catch (Exception e) {
    e.printStackTrace();
}

地理定位API一次只支持一个基站吗?我认为它比这更聪明,在所有塔楼中使用某种信号传播和距离估计。

在最近与谷歌就我们的地图API订阅进行的通信中,我询问了一些有关地理位置API的一般信息。事实证明,它不会对信号塔信号进行任何复杂的三角测量。

他们只使用第一个被认为有效的信号。参考资料:

你能发布你的完整代码吗。谢谢你的关注。我会把它挖出来的,有一段时间。。。从这篇文章开始,我认为API也在计算我的IP,这不是我想要的,因为我有与我当前位置无关的手机发射塔数据。这是tapestry应用程序的一部分。我已经拿出相关的部分,放进了一个普通的控制台应用程序:真可惜。我也希望谷歌能提供更智能的解决方案。。。事实上,我是在看到3座塔楼中的第一座后来到这里的。其他服务,如OpenCellID/Unwired Labs,会考虑所有信号塔,甚至信号强度,如果您提供了信号强度,并提供了更准确的位置。