Google API 3 открывает Infowindow из divs вне карт Google - PullRequest
2 голосов
/ 26 сентября 2011

Как видно из заголовка, как с помощью Google API 3 открыть Infowindow из divs вне Google Maps.

это то, что я делаю сегодня, но это работает только для последней ссылки div, а не для каждой ссылки

markerObj =  document.getElementById(markerId);
                   markerObj.onclick = function(){
                       google.maps.event.trigger(marker, 'click');
                   } 

Есть какие-нибудь подсказки?

1 Ответ

9 голосов
/ 26 сентября 2011

Я думаю, что для этой работы вам понадобится массив маркеров.Затем вы нажмете на нужный маркер (сейчас он просто сделает последний маркер).

Итак, добавляя маркеры на карту, добавляйте их в массив:

var markers = [];

var marker = new google.maps.Marker({   ... });

marker.addListener('click', function() {
    infowindow.setContent('blah blah');
    infowindow.open(map, this);
});

markers.push(marker);

Затем передайте в div, чтобы узнать, с каким массивом вы имеете дело.

<div id="link0">1</div> <div id="link1">2</a> (массивы JS начинаются с нуля)

Тогда просто небольшая поправка к вашему коду:

markerObj =  document.getElementById(markerId);

// work out which number it is
var linkID = markerId.replace("link", "");

markerObj.onclick = function(){
    google.maps.event.trigger(markers[linkID], 'click');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...