触发谷歌地图标记点击

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' );

【讨论】:

以上是关于触发谷歌地图标记点击的主要内容,如果未能解决你的问题,请参考以下文章

点击谷歌地图上的标记后,角度生命周期不再触发 - Ionic 3

点击标记时如何更新谷歌地图标记图像

谷歌地图打开标记点击活动

通过触摸或点击在 Android 谷歌地图上添加标记

不同外部链接的谷歌地图标记点击功能问题

Ionic 2 谷歌地图标记点击