我想用几个标记填充一个google地图。当用户点击一个标记,我希望它将用户发送到一个不同的网页,这是为该位置指定的。(例如:假设标记代表房屋,当您单击一个标记时,它会将您带到一个页面,其中包含有关该房屋的更多信息)
执行此操作的最简单方法是什么?
发布于 2010-03-22 09:59:08
您需要将事件侦听器附加到每个标记。单击处理程序可以将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));
}发布于 2011-07-19 04:22:28
我相信由于谷歌地图v3,GEvent是不被认可的,下面的工作对我来说是有效的
google.maps.event.addListener(marker, "click", function() {
window.location = url;
});https://stackoverflow.com/questions/2489483
复制相似问题