Окно информации Google Maps загружает только последнюю запись по маркерам

Я пытаюсь загрузить карту Google с динамическими маркерами и динамическими информационными окнами, чтобы они работали. В основном у меня работают маркеры. Информационные окна кликабельны и закрываются, однако в них нет правильного содержимого. Кажется, что содержимое каждого информационного окна - это последняя запись, найденная в цикле запроса. Вы увидите, что происходит здесь Вот код:


Есть идеи, почему это происходит?

10
задан knawlejj 26 August 2010 в 15:08
поделиться

1 ответ

В вашем коде вы статически устанавливаете содержимое информационного окна при загрузке с помощью

var infowindow = new google.maps.InfoWindow({
    content: contentString
});

Затем, когда ваши маркеры нажимаются, вы просто открываете это информационное окно

google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(map,marker);
 });

это будет отображать одно и то же содержимое для каждого маркера, вы не хотите этого.


то, что вы хотите сделать, это создать только одно информационное окно без содержимого (до вашего цикла маркеров). затем, когда щелкнут маркер, прикрепите содержимое к информационному окну... затем откройте информационное окно. Это сэкономит строки кода и приведет к автоматическому закрытию информационного окна.

перед созданием маркеров (с циклом) добавьте это

infowindow = new google.maps.InfoWindow();

в код маркера добавьте вызов infowindow.setContent

google.maps.event.addListener(marker, 'click', function() {
    infowindow.setContent(contentString);
    infowindow.open(map,marker);

 });
13
ответ дан 3 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: