Ich versuche, ein Infofenster der Google Maps-Marker zu öffnen, wenn ein Element außerhalb der Karte angeklickt wird. Ich habe ein paar ähnliche Fragen gesehen, aber keine funktionierende Antwort gefunden. Hier ist mein Code:Kontrolle Marker Infowindow von außerhalb von Google Maps API
html:
<div id="map_canvas"></div>
<div id="names_div"></div>
Skript:
var locations = [
['Bondi Beach', -33.890542, 151.274856],
['Coogee Beach', -33.923036, 151.259052],
];
var map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 10,
center: new google.maps.LatLng(-33.92, 151.25),
mapTypeControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var names_html = "";
for (i = 0; i < locations.length; i++) {
names_html += " " + "<a href='javascript:myclick(" + locations.length + ")' class='Names'>" + locations[i][0] + " </a> <br> <br>" ;
};
document.getElementById("names_div").innerHTML = names_html;
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
function myclick(i) {
google.maps.event.trigger(locations[i], "click");
}
Es ist die Wechselwirkung zwischen dem "names_html + = ..." Zeile und die „Funktion myclick (i) {... "Das verursacht das Problem, denke ich.
Zusätzlich konnte ich nur die HTML-Population des names_div mit einer separaten Schleife zur Marker-Schleife arbeiten. Dies kann auch das Problem sein!
Danke, Hilfe sehr geschätzt.