关于javascript:触发谷歌地图标记点击

trigger google maps marker click

我设置了谷歌地图以查找用户的当前位置,并将地图置于最靠近其位置的标记处。 单击时,标记会打开一个信息框(注意这与infoWindow略有不同 - http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/examples.html)。 但是,我想要做的是在没有用户实际点击的情况下自动打开最近的标记。 这是触发标记打开的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//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函数,但必须在这个函数之外的函数中完成。 我将引用数组中的相应标记(标记[nearestmarker])。


我看到这个问题已经存在了很长一段时间,但是,以防万一,这个答案可能会有所帮助:
触发谷歌地图标记点击

代码如下所示:

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

祝好运!


我发现我需要像这样将标记事件附加到标记

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