Deberá adjuntar un detector de eventos a cada marcador. El controlador de clics puede establecer document.location
en la URL de la página a la que desea ir.
var marker = new GMarker(location);
GEvent.addListener(marker, "click", function() {
window.location = theURL;
});
map.addOverlay(marker);
Ya que probablemente va a agregar marcadores en un bucle, tendrá que asegurarse de que cada uno tiene su propia URL. Dado que los cierres mantienen las variables reales a las que acceden (no sus valores), probablemente necesite poner al menos el código addListener
en su propia función para crear su propio alcance. El bucle se vería algo así como esto:
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));
}
Gracias por la ayuda! – Mike
Los lectores de esta respuesta deben tener en cuenta que GEvent debe reemplazarse con google.maps.event si está utilizando v3 de la API. Echa un vistazo a la otra respuesta con votos altos! –