триггер google maps click - PullRequest
       4

триггер google maps click

49 голосов
/ 22 июля 2011

У меня есть карта Google, настроенная для поиска текущего местоположения пользователя, и центрирование карты в том ближайшем маркере к его местоположению. При нажатии на маркеры открывается информационный блок (обратите внимание, что это немного отличается от окна 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]).

Ответы [ 2 ]

114 голосов
/ 04 мая 2012

я вижу, что этот вопрос уже давно стоит, но, на всякий случай, этот ответ может быть полезен: вызвать маркер карты Google click

код будет выглядеть так:

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

Удачи!

4 голосов
/ 07 сентября 2016

Я обнаружил, что мне нужно прикрепить событие клика к маркеру, например:

var marker = new google.maps.Marker({});
marker.addListener('click', function() {
    infowindow.open(map, marker);
});
new google.maps.event.trigger( marker, 'click' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...