触发谷歌地图标记点击
我有一个谷歌地图设置来查找用户的当前位置,并将地图放在最靠近他们位置的标记处。 点击标记时,打开一个信息框(请注意,这与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); };
所以不知何故,我必须触发相应标记的mouseDown函数,但它必须在这个之外的函数中完成。 我将有一个参考数组中适当的标记(标记[closestmarker])。
我看到这个问题已经坐了一段时间了,但是,以防万一,这个答案可能会有所帮助: 触发谷歌地图标记点击
祝你好运!
代码看起来像这样:
var marker = new google.maps.Marker({}); new google.maps.event.trigger( marker, 'click' );
我发现我需要附加一个点击事件标记像这样
var marker = new google.maps.Marker({}); marker.addListener('click', function() { infowindow.open(map, marker); }); new google.maps.event.trigger( marker, 'click' );