谷歌API 3从谷歌地图以外的div开放Infowindow

Tob*_*ias 2 javascript google-maps google-maps-api-3

正如标题所述,我如何使用谷歌API 3从谷歌地图以外的div打开Infowindow.

这就是我今天所做的,但这只适用于最后一个div链接而不是每个链接

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

有线索吗?

dun*_*can 9

我认为要完成这项工作,你需要有一系列标记.然后你会触发你想要的确切标记的点击(现在它只是在你的最后一个标记上做).

因此,在向地图添加标记时,将它们附加到数组中:

var markers = [];

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

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

markers.push(marker);
Run Code Online (Sandbox Code Playgroud)

然后在你的div上传入一个ID来计算出你正在处理的数组.

<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');
}
Run Code Online (Sandbox Code Playgroud)