2016-03-24 9 views
0

Wenn mehrere Zweige vorhanden sind, ist die für jedes Teil angegebene Entfernung gleich. Irgendeine Idee warum? Es meldet den Abstand zwischen den ersten beiden Beinen rechts, aber dann ist der Abstand zwischen jedem anderen Bein gleich wie das erste Bein. Wahrscheinlich zu diesem Zeitpunkt einfach zu koffeinhaltig, aber ich verstehe nicht warum. Hiergmaps.js gibt den alten Wert für getRoutes zurück

ist der Code:

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

Bitte geben Sie ein [minimales, vollständiges, getestetes und lesbares Beispiel] (http://stackoverflow.com/help/mcve) an, das das Problem veranschaulicht. – geocodezip

+0

sollte der var distance und die miles calculation nicht aus dem map callback an den anfang der funktion verschoben werden? Der Rückruf wird immer nur eine Entfernung zurückgeben, aber Sie möchten über alle Strecken summieren? –

+0

Ja, die Kilometerberechnung wird später verschoben. Ja, ich möchte jedes Mal eine Strecke (Bein), keine Summe. – Jafo

Antwort

1

Sorry für Ihre Zeit alle zu verschwenden. Offensichtlich ist dies ein bekannter, nicht fixieren Fehler mit gmap.js:

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

Das Update ist diesen Code in gmaps.js zu finden:

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

und ersetzen Sie es mit:

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