Триггер google maps marker click
У меня есть карта 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 соответствующего маркера, но это нужно сделать в функции за пределами этого. У меня будет ссылка на соответствующий маркер в массиве (маркеры [ближайший маркер]).
Ответы
Ответ 1
я вижу, что этот вопрос уже давно стоит, но на всякий случай этот ответ может быть полезен: триггер google maps click
Код будет выглядеть так:
var marker = new google.maps.Marker({});
new google.maps.event.trigger( marker, 'click' );
Удачи!
Ответ 2
Я обнаружил, что мне нужно было прикрепить событие click к маркеру так
var marker = new google.maps.Marker({});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
new google.maps.event.trigger( marker, 'click' );