Я настроил карту с несколькими маркерами, используя Google Maps Javascript API. Если щелкнуть маркер, откроется информационное окно. Однако, несмотря на то, что содержимое корректно (различно для каждого маркера), информационное окно открывается над одним и тем же маркером, независимо от того, на каком из них нажата кнопка.
Чтобы исправить это, я попытался явно установить правильную позицию ( long / lat) в функции eventlistener. Согласно выводу журнала консоли значения long и lat являются правильными. Но информация windows все еще открывается в неправильной идентичной позиции.
Вот код; PlaceMarker вызывается изнутри al oop через все места:
var activeInfoWindow;
function placeMarker(map, lat, lng, markerurl, title, contentString) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
icon: markerurl,
map: map,
title: title,
});
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, 'click', function() {
// close other active infowindows
if (activeInfoWindow) {
activeInfoWindow.set("marker", null);
activeInfoWindow.close();
}
// added to explicitly set new position:
infowindow.setPosition(new google.maps.LatLng(lat, lng));
// check: console log shows on click: lat and long correct (different for each clicked marker)
console.log(lat+' '+lng+' '+title);
infowindow.open(map, marker);
activeInfoWindow = infowindow;
});
}
Есть идеи, что мне не хватает? Спасибо!