Событие щелчка маркера Google Maps

Я хотел бы заполнить карту Google с несколькими маркерами. Когда пользователь нажимает на маркер, я хотел бы, чтобы он отправил пользователя в другую веб-страницу, которая определяется для того местоположения. (например: позволяет говорят, что маркеры представляют дома при нажатии на маркер, он берет Вас к странице с большей информацией о доме),

Что самый простой путь состоит в том, чтобы сделать это?

19
задан Chris Kuehl 28 May 2012 в 09:05
поделиться

1 ответ

Вам нужно будет прикрепить прослушиватель событий к каждому маркеру. Обработчик кликов может установить document.location как URL-адрес страницы, на которую вы хотите перейти.

var marker = new GMarker(location);
GEvent.addListener(marker, "click", function() {
    window.location = theURL;
});
map.addOverlay(marker);

Поскольку вы, вероятно, будете добавлять маркеры в цикл, вам нужно будет убедиться, что каждый из них получает свой собственный URL. Поскольку замыкания сохраняют фактические переменные, к которым они обращаются (а не их значения), вам, вероятно, потребуется поместить как минимум код addListener в свою собственную функцию, чтобы создать свою собственную область видимости. Ваш цикл будет выглядеть примерно так:

function createMarker(location, url) {
    var marker = new GMarker(location);
    GEvent.addListener(marker, "click", function() {
        window.location = url;
    });
    return marker;
}

// Assuming locations is an array of objects with lat, lng, and url properties
for (var i = 0; i < locations.length; i++) {
    var loc = locations[i];
    map.addOverlay(createMarker(new GLatLng(loc.lat, loc.lng), loc.url));
}
21
ответ дан 30 November 2019 в 02:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: