2011-07-22 231 views
40

我有一個谷歌地圖設置來查找用戶的當前位置,並將地圖放在最靠近他們位置的標記處。點擊標記時,打開一個信息框(注意這與infoWindow有點不同 - http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/examples.html)。然而,我想要做的是自動打開最近的標記,而不需要用戶實際點擊。下面的代碼觸發標記物開口:觸發谷歌地圖標記點擊

//loop through all locations to add a marker: 
addMarker = function(loc) { 
    var markerLoc = new google.maps.LatLng(loc.Lat, loc.Long); 

    var marker = new google.maps.Marker({ 
     map: map, 
     position: markerLoc 
    }); 

    google.maps.event.addListener(marker, "mousedown", function() { 

     var infoOpts = { 
      content: loc.markerText, 
      boxStyle: { background: "none transparent", width: "180px"}, 
      pixelOffset: new google.maps.Size(-90, 0), 
      closeBoxMargin: "5px" 
     }; 

     var ib = new InfoBox(infoOpts); 
     ib.open(map, marker); 
    }); 

    markers.push(marker); 
}; 

所以不知何故,我不得不觸發相應的標記的鼠標按下功能,但它有一個函數來完成這一項之外。我將參考數組中的適當標記(標記[closestmarker])。

回答

95

我看到這個問題已經坐了很長一段時間,但是,爲了以防萬一,這個答案可能會有所幫助: trigger google maps marker click

祝你好運!

的代碼應該是這樣的:

var marker = new google.maps.Marker({}); 
new google.maps.event.trigger(marker, 'click'); 
3

我發現我需要一個點擊事件附加到標記,像這樣

var marker = new google.maps.Marker({}); 
marker.addListener('click', function() { 
    infowindow.open(map, marker); 
}); 
new google.maps.event.trigger(marker, 'click');