web-dev-qa-db-fra.com

déclencher le clic du marqueur google maps

J'ai une carte Google configurée pour trouver la position actuelle de l'utilisateur et centrer la carte sur le marqueur le plus proche de sa position. Les marqueurs, lorsqu'ils sont cliqués, ouvrent une infobox (notez que c'est un peu différent d'une infoWindow - http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs /examples.html ). Ce que je veux faire, cependant, c'est ouvrir automatiquement le marqueur le plus proche sans que l'utilisateur clique réellement. Voici le code pour déclencher une ouverture de marqueur:

//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);
};

Donc, d'une manière ou d'une autre, je dois déclencher la fonction mouseDown du marqueur approprié, mais cela doit être fait dans une fonction en dehors de celle-ci. J'aurai une référence au marqueur approprié dans le tableau (marqueurs [marque la plus proche]).

49
mheavers

je vois que cette question est posée depuis un certain temps, mais, au cas où, cette réponse peut être utile: déclencher le clic du marqueur google maps

Le code ressemblerait à ceci:

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

Bonne chance!

115
kevinstueber

J'ai trouvé que je devais attacher un événement de clic au marqueur comme ça

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