Javascript 在Google Maps v3中检测航路点点击方向渲染器标记

Javascript 在Google Maps v3中检测航路点点击方向渲染器标记,javascript,google-maps-api-3,Javascript,Google Maps Api 3,在Google Maps API v3中,如何从DirectionsRenderer获取航路点标记,以便向其添加单击事件(如删除菜单)。在找到更好的解决方案之前,这里是我所采用的解决方法。基本思想是将您自己的标记放在航路点的顶部,并将单击事件侦听器绑定到标记上。我对这个想法做了演示 它肯定不是完美的,但是用一个自定义图标而不是默认的标记,它看起来有点自然 另一种不涉及在地图上放置新标记的方法是在地图小部件上检测DOM单击事件。这个想法很简单。检测到单击时: 使用以下命令将所有航路点的LatLng

在Google Maps API v3中,如何从DirectionsRenderer获取航路点标记,以便向其添加单击事件(如删除菜单)。

在找到更好的解决方案之前,这里是我所采用的解决方法。基本思想是将您自己的标记放在航路点的顶部,并将单击事件侦听器绑定到标记上。我对这个想法做了演示


它肯定不是完美的,但是用一个自定义图标而不是默认的标记,它看起来有点自然

另一种不涉及在地图上放置新标记的方法是在地图小部件上检测DOM单击事件。这个想法很简单。检测到单击时:

  • 使用以下命令将所有航路点的LatLng坐标转换为屏幕上的坐标(或者实际上是地图小部件上的坐标)
  • 计算航路点与单击点之间的距离。如果用户单击距离任何航路点足够近(距离小于航路点图标的半径)-显示该点的菜单

  • 我编了一个密码。将其转换为javascript应该非常简单。

    您可以在标记上创建单击事件,并为其指定一个高z索引,使其覆盖航路点,而不是在航路点上创建单击事件

  • 创建单个标记并指定高z索引
  • marker=new google.maps.marker({
    地图:地图,
    位置:新google.maps.LatLng(1.99,2.99),
    });
    marker.setZIndex(999);
    
  • 将侦听器添加到标记
  • 现在创建航路点

  • 我现在也有同样的问题。你找到解决方案了吗?我认为在谷歌地图API的当前状态下没有解决方案。应该有人提交功能请求。我已经考虑过一个潜在的解决方法,但还没有时间去做。@lashleigh:这个增强功能可以让代码很容易地被编写出来解决这个问题。如果你愿意的话,就开始吧。谢谢,我会把我的名字加到名单上的。
    google.maps.event.addListener(marker, 'click', function(event){
          alert(marker.title);
        });