谷歌地图标记点击事件
问题描述:
我想用几个标记填充谷歌地图。当用户点击标记时,我希望它将用户发送到为该位置指定的其他网页。 (例如:让说的标记代表的家园,当你点击它把你带到一个页面,更多有关家庭的标志)谷歌地图标记点击事件
什么是最简单的方法是什么?
答
您将需要一个事件侦听器附加到每个标记。点击处理程序可以将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));
}
答
我相信,谷歌地图V3的,GEVENT无法识别,下面的工作对我来说
google.maps.event.addListener(marker, "click", function() {
window.location = url;
});
感谢您的帮助! – Mike 2010-03-22 04:34:47
这个答案的读者应该注意,如果您使用API的v3,GEvent需要用google.maps.event替换。看看高票的其他答案! – 2014-03-26 16:38:18