2013-07-19 2 views
0

Итак, вот моя проблема. Функция обратного вызова не вызывается. И я не знаю, почему. Или даже как это работает. Как я могу вызвать функцию с параметрами и не поместить параметры в вызов?API Карт Google 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

ваш скрипт выглядит хорошо для меня, есть ли какие-либо ошибки в консоли? –

ответ

1

Вы пропускаете travelMode:

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); 

за the documentation:

travelMode | Путешествия | Запрошен тип маршрутизации. Обязательно

+0

TravelMode является необязательным и по умолчанию используется DiretionsTravelMode.DRIVING, если он отсутствует. https://developers.google.com/maps/documentation/javascript/distancematrix –

+1

Hah, только что видел ваше редактирование, но моя ссылка по-прежнему говорит, что это необязательно со значением по умолчанию :) –

+1

Документация несовместима. Когда он не был там, код бросил ошибку JavaScript, что он не был определен, и он не работал. Добавление его в запрошенный файл (обратный вызов). – geocodezip

Смежные вопросы