2014-12-03 205 views
-1

我想知道您是否可以帮我解决一个我正在使用谷歌距离矩阵api的问题。Google距离矩阵问题

请参阅下面我的代码:

//////////////////////////////////////////////////////////////// 
    var build = function (pc) { 
     var origin = "london"; 
     var dest = pc; 
     var service = new google.maps.DistanceMatrixService(); 
     service.getDistanceMatrix(
       { 
        origins: [origin], 
        destinations: [dest], 
        travelMode: google.maps.TravelMode.DRIVING, 
        durationInTraffic: true, 
        avoidHighways: false, 
        unitSystem: google.maps.UnitSystem.METRIC, 
        avoidTolls: false 
       }, callback); 
     function callback(response, status) { 
      var distanceVal = response.rows[0].elements[0].distance.value; 
      return distanceVal; 
     } 
    }; 
//////////////////////////////////////////////////////////////// 
    for (var i = 0; i < dealers.length; i++) { 
     var postcode = dealers[i].address[0].postcode; 
     var output = build(postcode); 
     console.log(output); 
    } 
/////////////////////////////////////////////////////////////////////////// 

当写到我想看到从谷歌API返回的值不同的控制台。出于某种原因,它似乎并不返回任何

在此先感谢

+0

距离服务是异步的,你需要在回调函数可用时使用返回的数据。 – geocodezip 2014-12-03 14:48:28

回答

0

把返回之前在回调函数里面的console.log代码...

+0

嗨,感谢您的回答。不幸的是,这不能满足我的要求。我需要访问变量并使用for循环内的数据 – KM123 2014-12-03 14:50:34

+0

有些变量在函数内部无法访问吗?从我所看到的情况来看,如果在回调函数中可以访问交易商,您应该可以。 – rfornal 2014-12-03 14:53:20