Страницы

Поиск по вопросам

вторник, 16 июля 2019 г.

Массив маркеров и InfoWindow (API V3)

В документации по картам гугл описывается пример открытия одного инфоокон для одного маркера: var infowindow = new google.maps.InfoWindow({ content: contentString });
var marker = new google.maps.Marker({ position: myLatlng, map: map, title:"Uluru (Ayers Rock)" });
google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); Мне нужно завести на карту много маркеров, чтобы у каждого было свое инфоокно с данными из моего заранее подготовленного массива. Однако, простая замена переменных marker, infowindow на массивы marker[], infowindow[] в цикле - нужного результата не дала. По щелчку на любом маркере вылетает инфоокно последнего поставленного маркера. Подскажите, где искать ошибку или пример под такую задачу.


Ответ

Мой рейтинг вырос, поэтому появилась возможность ответить самому себе. Итак: var marker = new google.maps.Marker({ position: myCenter, map: map, title: 'Объект: '+devices[i][1], icon:image }); // devices[] - это заранее подготовленный массив с полной информацией по каждому объекту, i - счетчик в цикле, остальные переменные также определены изначально mArray.push(marker); mArray[i].setMap(map); // маркеры храню для выборочной обработки (необязательно) makeInfoWin(marker, html); // html - заранее подгогтовленный текст в виде хтмл-разметки, который будет выведен в текущем инфоокне } } function makeInfoWin(marker, data) { var infowindow = new google.maps.InfoWindow({ content: data }); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); } API v.3

Комментариев нет:

Отправить комментарий