触发谷歌地图标记点击
Posted
技术标签:
【中文标题】触发谷歌地图标记点击【英文标题】:trigger google maps marker click 【发布时间】:2011-10-11 06:51:13 【问题描述】:我设置了一个谷歌地图来查找用户的当前位置,并将地图的中心放在离他们位置最近的标记处。单击标记时,会打开一个信息框(注意这与信息窗口有点不同 - 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 函数,但必须在此函数之外的函数中完成。我将引用数组中的相应标记(markers[closestmarker])。
【问题讨论】:
【参考方案1】:我看到这个问题已经存在了很长一段时间,但是,以防万一,这个答案可能会有所帮助: trigger google maps marker click
代码如下所示:
var marker = new google.maps.Marker();
new google.maps.event.trigger( marker, 'click' );
祝你好运!
【讨论】:
此解决方案不适用于集群标记(组标记之一)情况。如果你有,请分享建议。谢谢。【参考方案2】:我发现我需要像这样将点击事件附加到标记上
var marker = new google.maps.Marker();
marker.addListener('click', function()
infowindow.open(map, marker);
);
new google.maps.event.trigger( marker, 'click' );
【讨论】:
以上是关于触发谷歌地图标记点击的主要内容,如果未能解决你的问题,请参考以下文章