首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Maps Marker单击事件

Google Maps Marker单击事件
EN

Stack Overflow用户
提问于 2010-03-22 09:09:00
回答 2查看 41.7K关注 0票数 19

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

执行此操作的最简单方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-22 09:59:08

您需要将事件侦听器附加到每个标记。单击处理程序可以将document.location设置为要转到的页面的URL。

代码语言:javascript
复制
var marker = new GMarker(location);
GEvent.addListener(marker, "click", function() {
    window.location = theURL;
});
map.addOverlay(marker);

由于您可能会在循环中添加标记,因此需要确保每个标记都有自己的URL。由于闭包保留了它们访问的实际变量(而不是它们的值),因此您可能至少需要将addListener代码放在它自己的函数中,才能创建它自己的作用域。你的循环看起来像这样:

代码语言:javascript
复制
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));
}
票数 21
EN

Stack Overflow用户

发布于 2011-07-19 04:22:28

我相信由于谷歌地图v3,GEvent是不被认可的,下面的工作对我来说是有效的

代码语言:javascript
复制
google.maps.event.addListener(marker, "click", function() {
    window.location = url;
});
票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2489483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档