【问题标题】:Parsing Google Geo API (Reverse Geocoding) with jQuery使用 jQuery 解析 Google Geo API(反向地理编码)
【发布时间】:2011-04-06 10:24:10
【问题描述】:

我确定我不是唯一一个,但是当 jQuery 请求查找地址时,当请求的数据是 latitudelongitude 时,我无法解析/返回任何内容,因此 Google 可以返回数据,但是不能被jQuery读取?

http://maps.googleapis.com/maps/api/geocode/json

带参数:

latlng=51.276914,1.077252
&sensor=false

在 Firebug 中显示 200 OK,但响应中没有显示任何内容:

打开就可以看到:http://maps.googleapis.com/maps/api/geocode/json?latlng=51.187296,1.229086&sensor=false&_=1302084865163

我所做的是:

$.ajax(
{
    url: 'http://maps.googleapis.com/maps/api/geocode/json',
    data: 'latlng=' + geolocation + '&sensor=false',
    dataType: 'json',
    cache: false,
    success: function(data){ alert(data); }
});

这不起作用...$.get$.getJSONjson dataType 都不行。

为什么 jQuery 不能解析/读取响应?

【问题讨论】:

    标签: jquery json geolocation google-maps-api-3


    【解决方案1】:

    出于安全原因,您需要使用 google 地理编码器。见答案here

    【讨论】:

      【解决方案2】:

      如上所述,由于端点位于不同的域中,因此存在安全限制。但是,您不需要使用地理编码器,因为它所做的只是发出一个 ajax 请求 - 它所做的只是您现在所做的。

      正如 Shidhin Cr 上面提到的,解决安全问题的一种方法是您可以附加 callback=?,但真正要做的只是执行 jQuery 可以通过使用“jsonp”数据类型参数自动为您完成的任务。

      此外,如果您使用 $.getJSON,它应该会自动注意到这是在远程服务器上,并会自动为您将请求升级到 jsonp - 但我可能记错了,有一些关于 jquery 文档的争论与此相关特定的调用。

      上述两种建议都是正确的,只是缺少细节。

      【讨论】:

        【解决方案3】:

        像这样更改数据参数。您可以看到正确的响应

        data: 'latlng=' + geolocation + '&sensor=false&callback=?'
        

        【讨论】:

          【解决方案4】:

          尝试使用 $.getJSON 获取结果

          例子

          var latlng = "40.06125658,-7.745361328";
          var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + latlng + "&sensor=false";
          $.getJSON(url, function (data) {
              for(var i=0;i<data.results.length;i++) {
                  var adress = data.results[i].formatted_address;
                  alert(adress);
               }
          })
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-05
            • 1970-01-01
            • 1970-01-01
            • 2013-05-20
            • 2015-10-30
            • 1970-01-01
            相关资源
            最近更新 更多