我可能有很多标志物在一些地区,但这不是真正有用的显示工具提示,如果有其中5在同一地区,像这样的画面:隐藏提示
是否有可能hide
这些工具提示从一个缩放范围?例如,隐藏工具提示从0级到5
也许使用getZoom()
法变焦的事件,如:
if the user zoom {
if (getZoom() < 5) {
hide all tooltip
}
}
或者更复杂的东西,但更好的可能遮盖它,如果有太多在同一地区的许多标记?
我可能有很多标志物在一些地区,但这不是真正有用的显示工具提示,如果有其中5在同一地区,像这样的画面:隐藏提示
是否有可能hide
这些工具提示从一个缩放范围?例如,隐藏工具提示从0级到5
也许使用getZoom()
法变焦的事件,如:
if the user zoom {
if (getZoom() < 5) {
hide all tooltip
}
}
或者更复杂的东西,但更好的可能遮盖它,如果有太多在同一地区的许多标记?
要隐藏基于缩放范围的工具提示,请参阅此Leaflet issue conversation,其中引用this 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;
})
编辑:也看到this StackOverflow question。
接受的答案并没有为我工作(我使用单张1.2.0),但这里是使用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;
})
使用此方法也有在最初绑定刀尖标记以及设置permanent
选项:
(mymap.getZoom() >= tooltipThreshold
? marker.bindTooltip(tooltipText, {permanent:true})
: marker.bindTooltip(tooltipText, {permanent:false})
);
在一个单独的,但相关的说明,在接受答案的链接是有关单张标签插件一个计算器问题,这已被纳入作为工具提示评为Leaflet核心,现在已经过时,所以如果您有最新版本的Leaflet,请不要浪费时间。
非常感谢这是完美的,抱歉没有找到它! – Baptiste