Google Karte (v3) Infofenster Öffnung auf dem gleichen Marker die ganze Zeit
-
25-09-2019 - |
Frage
Ich erstelle mehrere Gmarkers (von JSON-Daten geladen durch JQuery „load“ -Funktion), auf alle von ihnen mir ein Ereignis-Listener hinzufügen, das Infofensters Objekt zu öffnen ich auf der Markierung vor erstellt, und dann füge ich alle auf die Karte .
Das Problem ist, dass das Infofenster immer auf dem gleichen Marker öffnet. Ich alle hatten diese vor der Arbeit, ich kann nicht sehen, wo das Problem ist ... Gültigkeitsbereich der Variablen? dumme Fehler irgendwo?
ich hochgeladen ein Beispiel , und hier ist ein Verknüpfung mit der JavaScript-Datei
Der Code:
var map;
var infowindow;
$(document).ready(function() {
var myLatlng = new google.maps.LatLng(47.15984,2.329102);
var myOptions = {
zoom: 6,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.HYBRID,
scrollwheel: false
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
infowindow = new google.maps.InfoWindow({content:'<p>Test</p>'});
$.getJSON("data.json", function(data) {
var markers = [];
for (var i = data.length - 1; i >= 0; i--){
var latLng = new google.maps.LatLng(data[i].lat, data[i].lng);
var marker = new google.maps.Marker({position: latLng});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
markers.push(marker);
};
for (var j = markers.length - 1; j >= 0; j--){
markers[j].setMap(map);
};
});
});
Lösung
Ändern
infowindow.open(map,marker);
infowindow.open(map,this);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow