2016-03-24 5 views
0

Если есть несколько ножек, расстояние, сообщаемое для каждой ноги, одинаково. Любая идея почему? Он сообщает расстояние между двумя первыми двумя ногами, но тогда расстояние между каждой ногой совпадает с расстоянием между ногами. На данный момент, возможно, слишком переработано, но я не понимаю, почему.gmaps.js возвращает старое значение для getRoutes

Вот код:

function marker(map, lat, lng, title, name) { 
map.addMarker({ 
    lat: lat, 
    lng: lng, 
    title: title, 
    click: function (e) { 

     legs.push({destination: name, latitude: lat, longitude: lng, distance: null, time: null}); 

     var next_stop; 

     if (legs.length > 1) 
     { 
      $.each(legs, function (index, value) 
      { 
       // Mileage In Between 
       if (legs[(index + 1)]) 
       { 
        next_stop = legs[(index + 1)]; 

       map.getRoutes(
        { 
         origin: [value.latitude, value.longitude], 
         destination: [next_stop.latitude, next_stop.longitude], 
         callback: function (e) 
         { 
          var time = 0; 
          var distance = 0; 
          for (var i=0; i<e[0].legs.length; i++) 
          { 
           time += e[0].legs[i].duration.value; 
           distance += e[0].legs[i].distance.value; 
          } 

          var miles = distance/1609.34; 

          var kilometers = distance/1000; 

          var timer = time/60; 

          legs[(index + 1)].distance = miles.toFixed(2); 

          alert(timer.toFixed(2) + " and " + miles.toFixed(2)); 
         } 
        } 
       ); 
      } 

      } 
      ); 
     } 

     console.log(legs); 

     a.$set('stops', legs); 

    } 
}); 
} 
+0

Просьба представить [Минимальный, завершенный, проверенный и читаемый пример] (http://stackoverflow.com/help/mcve), который демонстрирует проблему. – geocodezip

+0

не следует ли переносить расстояние var и расчет миль из обратного вызова карты к началу функции? Обратный вызов будет возвращать только одно расстояние каждый раз, но вы хотите суммировать все ноги? –

+0

Да, расчет пробега будет перенесен позже. Да, я хочу расстояние каждый раз (нога), а не сумма. – Jafo

ответ

1

Извините за тратить время всех. По-видимому, это известно, нефиксированной ошибка с gmap.js:

https://github.com/hpneo/gmaps/issues/373

Исправление найти этот код в gmaps.js:

if (options.callback) { 
    options.callback(self.routes, result, status); 
    } 

И заменить его:

if (options.callback) { 
    options.callback(result.routes, result, status); 
    } 
Смежные вопросы