gpt4 book ai didi

javascript - 在传单中隐藏工具提示以获得缩放范围

转载 作者:搜寻专家 更新时间:2023-11-01 05:20:39 25 4
gpt4 key购买 nike

我可能在某些区域有很多标记,但如果在同一区域有 5 个标记,这对于显示工具提示并不是很有用,就像这个屏幕:

enter image description here

是否可以在缩放范围内隐藏那些工具提示?例如,从 0 级到 5 级隐藏工具提示。

也许使用 getZoom() 方法和缩放事件,例如:

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

或者更复杂但更好的东西,如果同一区域有太多标记,可以隐藏它?

最佳答案

已接受的答案对我不起作用(我使用的是 Leaflet 1.2.0),但这是使用 Leaflet 工具提示的 permanent 选项的修改版本:

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;
})

使用此方法,您还必须在最初将工具提示绑定(bind)到标记时设置 permanent 选项:

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

在一个单独但相关的说明中,已接受答案中的链接是针对关于 Leaflet Label 插件的 stackoverflow 问题,该插件已作为工具提示并入 Leaflet 核心,现在已过时,所以不要浪费时间如果你有最新版本的 Leaflet。

关于javascript - 在传单中隐藏工具提示以获得缩放范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42364619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com