0

Bearbeiten - ich dieses forEach unter Verwendung anstelle einer for-Schleife festgelegt haben, da die Elemente aus einem ArrayGoogle Maps geocode Not For-Schleife Arbeiten in

diesen Code verwende ich gezogen werden, um die Breite abrufen und Länge einer gegebenen Adresse, die mit leaflet.js verwendet werden soll.

markers = [ 
     { 
      "name": "Tom David", 
      "address": "Karachi, Pakistan", 
      "url": "https://en.wikipedia.org/wiki/Anguilla" 
     }, 
     { 
      "name": "Bob Thomas", 
      "address": "London, Canada", 
      "url": "https://en.wikipedia.org/wiki/Japan" 
     }, 
     { 
      "name": "Bob Mike", 
      "address": "Paris, FR", 
      "url": "https://en.wikipedia.org/wiki/Japan" 
     } 
]; 


for (var i=0; i < markers.length; i++) { 

      geocoder = new google.maps.Geocoder(); 
      geocoder.geocode({'address': markers[i].address}, function(results, status) { 

      L.marker([results[0].geometry.location.lat(), results[0].geometry.location.lng()]).bindTooltip(markers[i].address).addTo(map); 


      });    

} 

Das Problem liegt bei bindToolTip(markers[i].address) als es aber um den Code zu ‚Bruch‘ scheint, wenn eine Zeichenfolge Namen (wie "Hello"), es funktioniert gut.

Dies ist aufgrund der Schleife funktioniert nicht wie vorgesehen nach dem new google.maps.geocoder() Teil. Ich habe versucht, alert(i) unter dem genannten Code zu verwenden, und es wiederholt nur die Nummer 12 dreimal aus irgendeinem Grund.

Wenn es über dem geocoder() Teil platziert ist, funktioniert es richtig und iteriert 0, 1 und 2.

Ich würde wirklich jede Hilfe mit diesem schätzen.

Overall

  • Abrufen der Adresse aus dem Array basierend auf dem aktuellen i Wert in der for-Schleife

  • Anzeige der Adresse in dem bindTooltip() abgerufene Teil als Tooltip Wert angezeigt werden innerhalb der Karte.

bearbeiten

Asynchronous Process inside a javascript for loop Diese Frage als ein Duplikat des Link angezeigt markiert wurde, obwohl ich unsicher bin, wie die gegebenen Antworten in meinem eigenen verwendet werden könnten. Könnte mir jemand damit helfen?

+0

Mögliches Duplikat [asynchronen Prozess in einer Javascript für loop] (https gezogen wird: // Stackoverflow. com/questions/11488014/asynchrone-process-inside-a-javascript-for-loop) – Hodrobond

+0

@Hodrobond Danke für den Link, obwohl ich wirklich unsicher bin, wie das im Falle meines Codes zu implementieren? Könntest du mir dabei helfen? – Osman

+0

[IIFE] (https://developer.mozilla.org/en-US/docs/Glossary/IIFE) s kann je nach Szenario am einfachsten zu implementieren sein. [Hier] (https://jsfiddle.net/L7ce4xyL/) ist ein einfaches Beispiel. Im Grunde erstellen Sie eine [anonyme Funktion] (http://helephant.com/2008/08/23/javascript-anonymous-functions/) und übergeben Sie "i" in. – Hodrobond

Antwort

0

ich mich kann forEach nur realisiert verwenden, anstatt mit einem for-Schleife zu verwenden, da die Daten aus einem Array