Вам нужно будет подключить прослушиватель событий к каждому маркеру. Обработчик кликов может установить 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));
}
Спасибо за помощь! – Mike
Читатели этого ответа должны отметить, что GEvent необходимо заменить на google.maps.event, если вы используете v3 API. Взгляните на другой ответ с высоким голосом! –