2011-09-26 148 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在哪裏定義? –