Открыть маркер/информационное окно снаружи?

Я добавляю маркеры на свою карту Google следующим образом:

    function createMarker(location, info) {
        var marker = new google.maps.Marker({
            map: map,
            position: location
        });

        google.maps.event.addListener(marker, "click", function () {
            if (infowindow) infowindow.close();
            infowindow = new google.maps.InfoWindow({ content: info, title: 'test' });
            infowindow.open(map, marker);
        });
    }

Как я могу получить доступ и открыть маркеры без ручного нажатия на карту?

Я попытался сохранить объект marker и выполнить marker.click(), но, похоже, это не сработало.

Любые идеи?


person timmkrause    schedule 21.11.2011    source источник


Ответы (1)


Добавлен:

var markers = new Array();

function getMarkerbyLocation(location) {
    for (var i = 0; i < markers.length; i++) {
        if (markers[i].getPosition().lat() == location.lat() && markers[i].getPosition().lng() == location.lng())
            return markers[i];
    }
}

Изменено:

function createMarker(location, info) {
    var marker = new google.maps.Marker({
        map: map,
        position: location
    });

    google.maps.event.addListener(marker, "click", function () {
        if (infowindow) infowindow.close();
        infowindow = new google.maps.InfoWindow({ content: info });
        infowindow.open(map, marker);
    });

    // Modification here!
    markers.push(marker);
}

Некоторое событие на странице выполняет следующее:

google.maps.event.trigger(getMarkerbyLocation(new google.maps.LatLng(53.43306, 9.98556)), 'click');
person timmkrause    schedule 22.11.2011