How to remove previous infobubble, if I click different marker in HERE Map?

后端 未结 2 1070
小蘑菇
小蘑菇 2021-01-18 03:15

Here below is my code to add an infobubble. I want to remove the current infobubble previously after click(tap) on a different marker.

function addInfoBubble         


        
2条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-01-18 03:40

    You could remove all infobubbles from ui just before adding a new one. If you don't mind removing all current bubbles being displayed, something like this should work:

    ui.getBubbles().forEach(bub => ui.removeBubble(bub));
    

    Incorporating it to your code:

    function addInfoBubble(map) {
       var group = new H.map.Group();
       map.addObject(group);
       // add 'tap' event listener, that opens info bubble, to the group
       group.addEventListener('tap', function(evt) {
          // event target is the marker itself, group is a parent event target
          // for all objects that it contains
          var bubble = new H.ui.InfoBubble(evt.target.getPosition(), {
            // read custom data
            content: evt.target.getData()
          });
          //remove infobubbles
          ui.getBubbles().forEach(bub => ui.removeBubble(bub));
    
          // show info bubble
          ui.addBubble(bubble);
       }, false);
    }
    

提交回复
热议问题