当前位置: 首页 > 知识库问答 >
问题:

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

龙俊德
2023-03-14

我正在尝试使用Google Maps地理定位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中获取合适的数据时遇到了问题。

我在Java使用Apache HTTPClient和HTTPPost库实现了POST。我得到了一个有效的回应,但它总是最新的,第一个电池塔的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一次只支持一个蜂窝塔吗?我想它会比这更聪明,使用某种信号传播和距离估计跨越所有的塔。

共有2个答案

濮佑运
2023-03-14

他们只使用第一个被认为是有效的。参考:http://code.google.com/p/gmaps-api-issues/issues/detail?id=6929

鞠边浩
2023-03-14

在最近与Google就我们的mapping API订阅进行的交流中,我询问了一些关于地理位置API的一般信息。结果它不会对蜂窝塔信号进行复杂的三角测量。

 类似资料:
  • 如何移除第一个数组但返回减去第一个元素的数组 在我的示例中,当删除第一个元素时,我应该得到

  • 简而言之,我试图创建一个简单的api,它将返回具有匹配ID的用户。我使用postman向使用Node.js和Express创建的本地主机发送请求。当我请求第一个用户时,它工作得很好,但当请求“john”时,它会抛出一个错误。我正在编写一门udemy课程的代码,但除了材料过时之外,我不知道问题是什么。错误为“错误[ERR_HTTP_HEADERS_SEND]:将标头发送到客户端后无法设置标头” nu

  • 返回数组中除第一个元素外的所有元素。 如果数组的 length 大于 1 ,则返回 Array.slice(1),否则返回整个数组。 const tail = arr => (arr.length > 1 ? arr.slice(1) : arr); tail([1, 2, 3]); // [2,3] tail([1]); // [1]

  • 好的,基本上,我试图遍历大量包含文件超链接的html代码。我在用preg_match_all找到所有发生的事情。然而,它永远不会返回预期的匹配量。 快照HTML代码(值为$content): PHP代码: 上面的代码只为我返回第一个匹配项。奇怪的是,回荡着: 所以我想我应该数一数数组,然后把它绕成一个for循环来解决这个问题。然而:

  • 本文向大家介绍返回一个数组,该数组填充有JavaScript中数字的所有数字的位置值,包括了返回一个数组,该数组填充有JavaScript中数字的所有数字的位置值的使用技巧和注意事项,需要的朋友参考一下 我们需要编写一个函数,该函数需要一个正整数,并返回一个数组,该数组填充有该数字的所有数字的位置值。 例如- 让我们为该函数编写代码。 这个问题非常适合递归方法,因为我们将迭代数字的每个数字。因此,

  • 我是JPCAP的新手。我在用 eth0链路Encap:Ethernet HWaddr 18:A9:05:CB:8D:FB 上行广播多播MTU:1500度量:1个RX数据包:0个错误:0个丢弃:0个溢出:0帧:0个TX数据包:0个错误:0个丢弃:0个溢出:0载波:0个冲突:0个TX队列n:1000个RX字节:0(0.0B)TX字节:0(0.0B)中断:17 lo链接Encap:本地环回 inet A