Hide tooltip in sheet for zoom range

I can have many markers in a certain area, but it is not very useful to display a tooltip if there are 5 in the same area as this screen:

enter image description here

Is it possible to use hidethis tooltip from the zoom range? For example, hide the tooltip from level 0 to 5.

Perhaps using a method getZoom()with an event on scaling, for example:

if the user zoom {
    if (getZoom() < 5) {
      hide all tooltip
    }
}

Or something more complex, but the best thing that can hide it if there is too much marker in one area?

+4
source share
2 answers

, . , JS bin. :

var lastZoom;
map.on('zoomend', function() {
  var zoom = map.getZoom();
  if (zoom < 15 && (!lastZoom || lastZoom >= 15)) {
    map.eachLayer(function(l) {
      if (l.getTooltip) {
        var toolTip = l.getTooltip();
        if (toolTip) {
          this.map.closeTooltip(toolTip);
        }
      }
    });
  } else if (zoom >= 15 && (!lastZoom || lastZoom < 15)) {
    map.eachLayer(function(l) {
      if (l.getTooltip) {
        var toolTip = l.getTooltip();
        if (toolTip) {
          this.map.addLayer(toolTip);
        }
      }
    });
  }
  lastZoom = zoom;
})

:, . StackOverflow.

+2

( Leaflet 1.2.0), , permanent Leaflet:

var lastZoom;
mymap.on('zoomend', function() {
    var zoom = mymap.getZoom();
    if (zoom < tooltipThreshold && (!lastZoom || lastZoom >= tooltipThreshold)) {
        mymap.eachLayer(function(l) {
            if (l.getTooltip()) {
                var tooltip = l.getTooltip();
                l.unbindTooltip().bindTooltip(tooltip, {
                    permanent: false
                })
            }
        })
    } else if (zoom >= tooltipThreshold && (!lastZoom || lastZoom < tooltipThreshold)) {
        mymap.eachLayer(function(l) {
            if (l.getTooltip()) {
                var tooltip = l.getTooltip();
                l.unbindTooltip().bindTooltip(tooltip, {
                    permanent: true
                })
            }
        });
    }
    lastZoom = zoom;
})

, permanent, :

(mymap.getZoom() >= tooltipThreshold
    ? marker.bindTooltip(tooltipText, {permanent:true})
    : marker.bindTooltip(tooltipText, {permanent:false} )
);

, - Label Label, ​​ , , .

+2

Source: https://habr.com/ru/post/1670396/


All Articles