![](/img/trans.png)
[英]OpenLayers TileLayer, How to switch between force-on/off and zoom-based visibility?
[英]Openlayers zoom-based object visibility not working
我想讓我的元素基於縮放。 縮小 19 時我不需要它可見,因為我的 map 看起來不太好。
我嘗試使用從layers.js
文件導出的maxResolution
方法,結果發現,整個map是由QGIS2web插件生成的。 不幸的是它沒有用
我也嘗試了minZoom
功能,但沒有成功。
我在這里找到的所有合理示例:
https://openlayers.org/en/latest/apidoc/module-ol_View.html
https://openlayers.org/en/latest/examples/layer-zoom-limits.html
https://github.com/Viglino/ol-ext/issues/51
另一個線程說要更改 maxResolution 值,但它也沒有用。
最后,我的代碼如下所示:
var tekst2 = new ol.Overlay({
position: pos3,
minZoom: 19,
element: document.getElementsByClassName('tekscio')[1],
});
map.addOverlay(tekst2);
我看到,minZoom 主要指的是 map canvas 的縮放下限。
但是這個配置:
var tekst2 = new ol.Overlay({
position: pos3,
element: document.getElementsByClassName('tekscio')[1],
maxResolution:0.42006699228392946,
});
map.addOverlay(tekst2);
也沒有用。
我也在這里找到了一些方法:
http://dev.openlayers.org/releases/OpenLayers-2.13.1/doc/apidocs/files/deprecated-js.html
但看起來它們已被棄用。
我應該在這段代碼中做什么? 這里還有什么我想念的嗎?
我想根據縮放級別獲得此文本。
以防萬一我在這里發送帶有 javascript 代碼的 JS 小提琴:
我想讓我的元素基於縮放。 縮小 19 時我不需要它可見,因為我的 map 看起來不太好。
您可以以類似於此的方式根據當前縮放級別簡單地顯示/隱藏元素(縮放更改處理程序取自https://gis.stackexchange.com/a/309404/70847 ):
var currZoom = map.getView().getZoom();
map.on("moveend", function(e) {
var newZoom = map.getView().getZoom();
if (currZoom != newZoom) {
if (newZoom > 19) {
document.getElementById("vienna").style.display = "none";
} else {
document.getElementById("vienna").style.display = "unset";
}
currZoom = newZoom;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.