Hallo,
ich möchte in einer Google Map über ein PHP-Script das eine Marker-XML erzeugt die Karten mit Markern befüllen, was auch prima funktioniert.
Nun ist es so, dass ich ausserhalb der Karte per onclick die Infoblase der verschiedenen Marker triggern möchte.
Da die Marker über die for-Schleife dynamisch eingefügt werden und jeder Marker den selben Variablennamen "marker" besitzt, wird in folgenden Code nur immer der letzte Eintrag getriggert. Ich müsste quasi die Markervariabelen so setzen marker1 = ...., marker2 = ...., marker3 = ....., usw. In dem Test-Beispiel unten sollte sich dann der zweite Marker der in die Karte geladen wurde öffnen.
Wie bekomme ich den Wert aus i an die Markervariabel dran?
mit var marker+i habe ich schon versucht, geht nicht.
var marker;
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(48.5555100, 12.6448400), 6);
GDownloadUrl("haendler_create_marker_xml.php", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = createMarker(point, name, address, type, i);
map.addOverlay(marker);
}
});
}
}
function createMarker(point, name, address, type, i) {
marker = new GMarker(point, customIcons[type]);
var html = "<b>" + name + "</b> <br/>" + address;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
//]]>
</script>
~~~html
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 700px; height: 700px"></div>
<span onclick="javascript:GEvent.trigger(marker2,'click');">Oeffne Marker</span>
</body>
gruss