Java 谷歌地图地理定位API仅返回我阵列中第一座塔的位置
我试图利用谷歌地图地理定位API。我将一个只包含cell towers的JSON文件发布到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
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,会考虑所有信号塔,甚至信号强度,如果您提供了信号强度,并提供了更准确的位置。