Google Maps API V3: Mehrere Marker mit InfoWindow
Gabriel
- javascript
Hallo zusammen,
ich möchte auf einer Karte mehrere Marker mit Info Windows anzeigen lassen. Mein (fehlerhafter) Code hierfür ist:
function initialize()
{
var marker, i;
var mapOptions = {
zoom: zoom,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
for (i = 0; i < locs.length; i++)
{
var marker = new google.maps.Marker(
{
position: new google.maps.LatLng(locs[i][0], locs[i][1]),
title: locs[i][2],
clickable: true,
map: map
});
marker.info = new google.maps.InfoWindow(
{
content: 'test'
});
google.maps.event.addListener(marker, "click", function (e) { marker.info.open(map, marker); });
}
}
Alle MArker werden dargestellt, aber das Infowindow wird hier immer nur dem letzten Marker angehängt, was durchaus auch nachvollziehbar ist, da vermutlich nur auf den letzten Marker referenziert wird. Um jedem Marker eindeutig anzusteuern habe ich es mit einem Array versucht, aber nun wird gar kein Marker mehr dargestellt, was ich mir nicht erklären kann:
var markers = new array();
function initialize()
{
var marker, i;
var mapOptions = {
zoom: zoom,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
for (i = 0; i < locs.length; i++)
{
var markers[i] = new google.maps.Marker(
{
position: new google.maps.LatLng(locs[i][0], locs[i][1]),
title: locs[i][2],
clickable: true,
map: map
});
markers[i].info = new google.maps.InfoWindow(
{
content: 'test'
});
google.maps.event.addListener(markers[i], "click", function (e) { markers[i].info.open(map, marker); });
}
}
Irgendwie scheint es so, als wäre das Objekt Marker nicht mit einem Array verträglich. Wenn ich die Zeile "var markers = new array();" in dem 1. Code innerhalb der init-Funktion einfüge (auch ohne die Variable "markers" zu verwenden) werden ebenfalls keinerlei Marker dargestellt.
Schonmal im Voraus vielen Dank!