![](/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.