2011-09-26 119 views
2

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

这是我今天做什么,但这只工作的最后一个div链接上,而不是每一个环节

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

任何线索?

回答

9

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

因此,当你添加标记到地图中,它们附加到一个数组:

var markers = []; 

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

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

markers.push(marker); 

然后在你的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'); 
} 
+0

谢谢您的回答!有关如何做到这一点的任何线索? – Tobias

+0

感谢百万人的回答!有用! – Tobias

+0

markerId在哪里定义? –