首页 > 解决方案 > 如何确定是否点击了地图或标记

问题描述

再次感谢这里的地图 API。

我们目前正在努力如何确定是否单击了标记或地图本身。我们已经向地图和标记(作为组添加)添加了事件侦听器。
当我们现在点击地图时,两个事件监听器都会被触发。

我们是否遗漏了 API 文档中的某些内容?我认为应该有一种方法可以获取点击内容的正确信息。

地图事件监听器

map.addEventListener('tap', (event) => {
  action(event);
});

标记事件监听器

marker.addEventListener('tap', (event) => {
  action(event);
});

提前致谢。

标签: javascripthere-api

解决方案


最好在地图对象上使用单个侦听器。

关键是检查的实例event.target

map.addEventListener('tap', event => {
   if (event.target instanceof H.map.Marker) {
       // Some action. Typically, you want to use the data that you may have referenced
       // in the marker creation code, or get the coordinates. Here we log the data
       console.log( event.target.getData() );
    }
}

推荐阅读