javascript - 用于在 Google map 上打开标记信息窗口的超链接

标签 javascript google-maps-api-3 google-maps-markers

我有一张 map ,旁边有一个侧栏 div。我试图让 map 上的每个标记在侧边栏中都有一个相应的超链接,单击时会弹出该标记的信息框。

function linkClick(){
   google.maps.event.trigger(gmarkers[cpid], "click");
}

content += '<a href="javascript:linkClick(' + cpid + ')">'+tmpName+"</a><br>";
$("#cplist").html(content);

cpid 是 map 上每个点的唯一 ID,该值与标记的其余信息一起存储在数据库中。

我在 map 上有标记,在侧栏中有链接,但我不确定如何在两者之间建立连接。我创建了“linkClick”函数来尝试实现此目的,但我收到错误:

ReferenceError: Can't find variable: linkClick

目前,上述所有代码都在循环中,用于在 map 上绘制标记。我想我已经包含了足够的细节/代码。

这是我想要实现的示例 http://www.geocodezip.com/v3_MW_example_categories.html

最佳答案

我建议更改您的方法 - 不要尝试推送 click 事件,只需直接转到 InfoWindow 并调用 open 即可。在代码的其他地方,您为打开 InfoWindow 的每个标记提供了一个 click 事件监听器;因此,当 onlick 函数调用时,维护对 InfoWindow 实例的引用并打开它们,就像在标记 click 事件处理程序中一样附加到链接的调用。

或者,如果您遵循通用策略并使用单个全局 InfoWindow,只需编写一个接受 cpid 的函数,将必要的内容放入InfoWindow,设置正确的位置,然后调用InfoWindow.open(map )

因此,如果这是您的事件监听器代码:

google.maps.event.addListener(marker, 'click', function () {
    infowindow.setContent(tmpName+" is "+tmpDist+"km away from you."); 
    infowindow.open(map, this);
});

添加新功能:

function openInfoWindow( cpidAndWhateverElseParam ) {
    infowindow.setContent(tmpName+" is "+tmpDist+"km away from you."); 
    infowindow.open(map, this);
}

并将链接代码更改为:

content += '<a href="javascript:openInfoWindow(' + cpidAndWhateverElseParam +
    ')">'+tmpName+"</a><br>";

关于javascript - 用于在 Google map 上打开标记信息窗口的超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10484626/

相关文章:

javascript - Google OAuth2 出现问题(应用没有后端,因此只有客户端)

javascript - 点击 Google map 标记时添加信息窗口气泡

google-maps - 使用 fitbounds 时,在 map 范围内包括打开的信息窗口

javascript - 从谷歌地图中删除现有的折线

javascript - 谷歌地图 V3 : Updating Markers Periodically

javascript - 如何使用 Python 拆分 Javascript 代码 (bs4)

javascript - Angular Material 表拖放列排序不起作用

javascript - Next.js 中奇怪的命令式 onScroll 路由行为(仅在服务器上呈现)

javascript - Google Maps API - 如何在不显示 map 的情况下从自动完成中获取纬度和经度?

android - 如何保持道路上的标记?谷歌地图安卓