如何在谷歌地图上点击默认标记/地点时捕获点击事件?

8
我正在使用Google Maps API V3。默认情况下,googlemaps会显示一些地点/位置的标记,我需要在其中一个被单击时捕获单击事件。 enter image description here 我尝试使用地图的点击事件,但它不起作用,因为用户是点击标记而不是地图,代码如下:
google.maps.event.addListener(mymap, 'click', function () {
  alert('clicked');
});

请问有人能给我一个如何完成它的想法吗?

编辑: 我找不到合适的事件在可用事件中, 它可以帮助我!

请注意,我不是在谈论自定义标记(由用户创建),这些是默认标记,googlemaps默认显示它们。


1
目前在Google Maps API v3中无法访问那些标记的点击事件。唯一的选择是使用样式地图来隐藏它们。https://dev59.com/V2ox5IYBdhLWcg3w5IVv - geocodezip
Yaqub,这里的答案距离你想要的还有很长一段距离,但可能会提供一种前进的方式。 - Beetroot-Beetroot
这个答案提供了一个解决方法。 - Tesseract
4个回答

1

0

这个方法有点hacky,而且不支持IE 9以下的版本,但你可以监听DOM事件, 以便检测窗口的创建,使用

Mutation Observer

这是一个 Plunkr 示例:http://plnkr.co/edit/pGep9OZFligLhRtHlhgk 您可以在控制台中检查,当您单击 POI 时会触发事件(实际上会触发两次)。

0

我从未尝试过,但您可以使用Google Places API检索Google显示的地点列表,然后为它们建立自己的标记和点击事件吗?


我正在做完全相同的事情,在这种情况下没有问题,我可以与它们互动。我所说的标记存在于地图上,无需搜索;你不需要搜索它们,它们是默认存在的。 - Yaqub Ahmad

-2
请注意,这里的问题是使用 GMAP3 库来完成的,GMAP3 是一个 jQuery 插件库,它在 Google 地图层之上添加了一个 API 层。使用 google.maps.addListener 使用 Google API 是绝对正确的,但我认为 OP 想要更接近 GMAP3 示例的东西,比如使用 addMarkers 监听单击事件。考虑到这一点,我修改了 GMAP3 的示例,并将 mouseenter 事件更改为 click 事件,同时去掉了 mouseleave 事件。

参见


我不是在谈论自定义标记(由用户创建),我在谈论默认标记,谷歌会为某些地方/位置显示它们。 - Yaqub Ahmad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接