Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript从google地图加载json数据_Javascript_Json_Google Maps - Fatal编程技术网

使用javascript从google地图加载json数据

使用javascript从google地图加载json数据,javascript,json,google-maps,Javascript,Json,Google Maps,这就是我的代码,console.log给了我正确的值,但是函数不返回值,即使返回值在超时内。我一定是做错了什么 function countyfinder(address){ var rr =$.getJSON('https://maps.googleapis.com/maps/api/geocode/json?address=' + address.replace(" ", "%20")).done(function(data) { var county = data.results[0]

这就是我的代码,console.log给了我正确的值,但是函数不返回值,即使返回值在超时内。我一定是做错了什么

function countyfinder(address){


var rr =$.getJSON('https://maps.googleapis.com/maps/api/geocode/json?address=' + address.replace(" ", "%20")).done(function(data) {
var county = data.results[0].address_components[3].short_name;
//return county;//data is the JSON string
});return rr;};

function calculatetax(address, price){
var j = countyfinder(address);
setTimeout(function(){var k = j["responseJSON"]['results'][0]['address_components'][3]['short_name'];
console.log(k);//return k won't work in here either
}, 1000); return k
};

这就是我的结局:

    var jq = document.createElement('script');
    jq.src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
    document.getElementsByTagName('head')[0].appendChild(jq);


    function getCounty(address) {
      var country;
      var baseApiUrl = "https://maps.googleapis.com/maps/api/geocode/json";
      var query = "?address=" + encodeURIComponent(address);
      var queryUrl = baseApiUrl + query;

      $.ajax({
        url: queryUrl,
        async: false,
        dataType: 'json',
        success: function(data) {
          county = gmapsExtractByType(data, "administrative_area_level_2 political");
        }
      });

      return countr.long_name;
    }

    function gmapsExtractByType(json, type) {
      return json.results[0].address_components.filter(function(element) {
        return element.types.join(" ") === type;
      })[0];
    }      
    console.log( getCounty("100 wacko lane ohio") );  

我必须通过更改ajax请求中的一些设置来使用同步请求。这样做的缺点是,浏览器将被锁定,直到您收到请求响应,这可能在连接速度慢或与不可靠的服务器连接时出现问题。对于谷歌,大多数时候,我认为这不会发生。

1。为什么要使用javascript中的地理编码Web服务,请使用Google Maps javascript API v3地理编码服务2。$。getJSON是异步的
rr
是承诺,而不是您认为它是1的数据。我现在就调查一下。有没有办法等待异步数据?