Google Maps API v3此回调函数如何工作?

问题描述:

所以这是我的问题。 回调函数未被调用。我不知道为什么。或者甚至这是如何工作的。 如何使用参数调用函数,而不是将参数放在调用中?Google Maps API v3此回调函数如何工作?

这里的

var addr = new Array(5); 
    addr[0] = new google.maps.LatLng(-27.352646,-53.384881); 
    addr[1] = new google.maps.LatLng(-27.344648,-53.395009); 
    addr[2] = new google.maps.LatLng(-27.365562,-53.388859); 
    addr[3] = new google.maps.LatLng(-27.366241,-53.401655); 
    addr[4] = new google.maps.LatLng(-27.360467,-53.397476); 


    var a = new google.maps.LatLng(-27.352901,-53.402745); 
    var menorDistancia; 
    var destinoFinal; 
    function callback(response, status) { 
     alert("CHEGOU AQUI") 
     if (status == google.maps.DistanceMatrixStatus.OK) { 
     var origins = response.originAddresses; 
     var destinations = response.destinationAddresses; 

    for (var i = 0; i < origins.length; i++) { 
     var results = response.rows[i].elements; 
     for (var j = 0; j < results.length; j++) { 
     var element = results[j]; 
     var distance = element.distance.text; 
     var duration = element.duration.text; 
     var from = origins[i]; 
     var to = destinations[j]; 
     if(distance < menorDistancia || i==0){ 
      menorDistancia = distance; 
      destinoFinal = to; 
     } 
     } 
    } 
    } 
    } 

    var service = new google.maps.DistanceMatrixService(); 
    service.getDistanceMatrix(
     { 
      origins: [a,a,a,a,a], 
      destinations: [addr[0],addr[1],addr[2],addr[3],addr[4]], 
     }, callback); 
+0

您的脚本看起来没问题,控制台中是否有任何错误? –

你缺少travelMode代码:

the documentation
service.getDistanceMatrix(
    { 
     origins: [a,a,a,a,a], 
     destinations: [addr[0],addr[1],addr[2],addr[3],addr[4]], 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }, callback); 

travelMode | TravelMode |请求的路由类型。 必需

+0

TravelMode是可选的,如果省略,默认为DiretionsTravelMode.DRIVING。 https://developers.google.com/maps/documentation/javascript/distancematrix –

+1

哈,刚刚看到您的编辑,但我的链接仍然表示它是可选的默认值:) –

+1

文档不一致。当它不在那里的代码扔了一个JavaScript错误,它没有被定义,它没有工作。将它添加到请求工作(回调运行)。 – geocodezip