Google地图标记点击活动

时间:2010-03-22 01:09:00

标签: javascript google-maps

我想用几个标记填充谷歌地图。当用户点击标记时,我希望它将用户发送到为该位置指定的不同网页。 (例如:假设标记代表住宅,当您点击标记时,它会将您带到包含有关住宅的更多信息的页面)

最简单的方法是什么?

2 个答案:

答案 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));
}