首页 文章

单击标记mapbox

提问于
浏览
0

我有它,以便点击 Map 在该点创建一个标记 . 我正在尝试向标记添加一个事件,该标记将在单击标记时返回lnglat . 问题是我无法点击标记, Map 只是不断创建新标记 .

map.on('click', function(e){
    let marker = new mapboxgl.Marker().setLngLat(e.lngLat).addTo(map);
    marker.on('click', function(){
        console.log('hello');
    });
});

1 回答

  • 0

    标记是简单的HTML元素,因此您可以通过在DOM节点上调用 addEventListener 直接向它们添加事件监听器:

    map.on('click', function(e){
      var el = document.createElement('div');
      el.className = 'marker';
      el.style.height = '20px';
      el.style.width = '20px';
      el.style.backgroundColor = 'black';
    
      el.addEventListener('click', function(e){
        // Prevent the `map.on('click')` to also be triggered
        e.stopPropagation();
        console.log('hello');
      });
    
      let marker = new mapboxgl.Marker(el).setLngLat(e.lngLat).addTo(map);
    });
    

    https://codepen.io/eddydg/pen/gZpbRj?editors=1010

相关问题