Надеюсь, я не пропускаю чрезвычайно простое решение, когда задаю этот вопрос.
У меня есть цикл в функции в Javascript, который получает координаты и имя местоположения из файла XML и создаетмаркеры на заказной карте Google.Я хочу, чтобы на эти маркеры можно было кликать и открывать информационное окно.У меня есть код, написанный для него, и все маркеры хорошо отображаются на карте.Но когда я нажимаю на любой маркер, только первое информационное окно появляется на первом созданном маркере.Вот что я сделал ...
for(var i=0; i<items.length; i++) {
var latitude = items[i].getElementsByTagName('Lat')[0].childNodes[0].nodeValue;
var longitude = items[i].getElementsByTagName('Lon')[0].childNodes[0].nodeValue;
var latlng = new google.maps.LatLng(latitude,longitude);
var titleNode = items[i].getElementsByTagName('Name')[0].childNodes[0];
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: titleNode.nodeValue,
icon: orangeCircle
});
var infoWindow = new google.maps.InfoWindow({
content: 'Hello world'
});
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map, marker);
});
}
Мое предположение (и это всего лишь предположение, я новичок в javascript) заключается в том, что мне нужно создать новое имя маркера для каждого маркера.Как в, каждый не должен просто быть назван "маркером".Я думал, что самый простой способ исправить это - создать имя переменной, основанное на том, какая итерация была в цикле, поэтому marker1, marker2, marker3 и т. Д. Но я не уверен, как мне задать имя переменной, чтобы добавить числодо конца, основываясь на какой бы итерации мы ни были.
Может быть, я ошибаюсь.Есть ли другой способ, которым я мог бы сделать это, если это неправильно?Спасибо !!