gpt4 book ai didi

java - Google Maps Geolocation API 只返回我数组中第一个塔的位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:32 26 4
gpt4 key购买 nike

我正在尝试使用 Google Maps Geolocation API。我正在将仅包含手机信号塔的 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 获取正常数据时遇到问题。

我使用 Apache HTTPClient 和 HTTPPost 库在 Java 中实现了 POST。我得到了有效的回复,但它始终是 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();
}

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

最佳答案

在最近与 Google 就我们的 map API 订阅进行的沟通中,我询问了有关 Geo-location API 的一些一般信息。事实证明,它不会对手机信号塔信号进行任何复杂的三角测量。

关于java - Google Maps Geolocation API 只返回我数组中第一个塔的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14280662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com