我想用几个标记填充谷歌地图。当用户点击标记时,我希望它将用户发送到为该位置指定的不同网页。 (例如:假设标记代表住宅,当您点击标记时,它会将您带到包含有关住宅的更多信息的页面)
最简单的方法是什么?
答案 0 :(得分:51)
我相信,截至谷歌地图v3,GEvent无法识别,下面对我有用
google.maps.event.addListener(marker, "click", function() {
window.location = url;
});
答案 1 :(得分:21)
您需要为每个标记附加一个事件监听器。点击处理程序可以将document.location
设置为您要转到的网页的网址。
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));
}