【问题标题】:How can i capture the click event when a default marker/place is clicked on googlemaps?在 googlemaps 上单击默认标记/位置时,如何捕获单击事件?
【发布时间】:2023-03-19 18:07:01
【问题描述】:

我正在使用 Google Maps API V3。 googlemaps 默认显示某些地方/位置的标记,我需要在单击其中一个时捕获单击事件。

我尝试使用地图的点击事件,但它不起作用,因为用户点击的是标记而不是地图,给出了代码:

google.maps.event.addListener(mymap, 'click', function () {
  alert('clicked');
});

谁能告诉我怎么做?

编辑: 我找不到合适的Eventin the available Events,可以帮到我!

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

【问题讨论】:

  • Google Maps API v3 目前无法访问这些标记上的点击事件。唯一的选择是使用样式地图隐藏它们。 stackoverflow.com/questions/8902829/…
  • Yaqub,答案here 与您想要的相去甚远,但可能提供了前进的道路。
  • this answer 提出了一种解决方法

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


【解决方案1】:

这是直接来自 Google 的干净解决方案: https://developers.google.com/maps/documentation/javascript/examples/event-poi

您可以轻松自定义 POI 的默认信息窗口。忽略本教程的路线制作功能。

【讨论】:

    【解决方案2】:

    它有点hacky,在IE

    Mutation Observer
    

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我也在做同样的事情,在那种情况下没有问题,我可以和他们一起玩。我所说的标记存在于地图上,无需任何搜索;您不需要搜索它们,它们默认存在。
      【解决方案4】:

      请注意,OP 询问是否使用 GMAP3 库执行此操作,这是一个 jQuery 插件库,在 Google Maps 层之上添加了一个 API 层。说谷歌 API 是使用 google.maps.addListener 是绝对正确的,但我认为 OP 想要更接近使用 addMarkers 的 GMAP3 示例的东西,但要监听点击事件。考虑到这一点,我修改了 GMAP3 中的示例,将 mouseenter 事件更改为 click 事件,并去掉了 mouseleave 事件。

      Refer

      【讨论】:

      • 我说的不是自定义标记(由用户创建),我说的是默认标记,谷歌会在某些地方/位置显示它们。
      猜你喜欢
      • 1970-01-01
      • 2011-01-06
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 2015-11-05
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多