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-SchleifeAnzeige 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?
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
@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
[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