我可能有很多標誌物在一些地區,但這不是真正有用的顯示工具提示,如果有其中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