我想让我的元素基于缩放。当缩小到 19 时我不需要它可见,因为我的地图看起来不太好。我尝试使用maxResolution从layers.js文件派生的方法,当发现它时,因为整个地图是由QGIS2web插件生成的。不幸的是它不起作用我也尝试了该minZoom功能,但没有成功。我在这里找到的所有合理的例子:https://openlayers.org/en/latest/apidoc/module-ol_View.htmlhttps://openlayers.org/en/latest/examples/layer-zoom-limits.htmlhttps://github.com/Viglino/ol-ext/issues/51另一个线程说有关更改 maxResolution 值,但它也不起作用。https://gis.stackexchange.com/questions/160725/vector-layer-visibility-using-min-maxresolution-is-not-working-in-openlayers-2最后,我的代码如下所示: var tekst2 = new ol.Overlay({ position: pos3, minZoom: 19, element: document.getElementsByClassName('tekscio')[1], }); map.addOverlay(tekst2);我发现, minZoom 主要指的是地图画布的缩放下限。但这个配置: 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.htmlhttp://dev.openlayers.org/docs/files/OpenLayers/Layer/FixedZoomLevels-js.html#OpenLayers.Layer.FixedZoomLevels.getOLZoomFromMapObjectZoom但看起来它们已被弃用。我应该在这段代码中做什么?这里还需要提供我所缺少的其他东西吗?我想要基于缩放级别的文本。以防万一我在这里发送带有 javascript 代码的 JS 小提琴:https://jsfiddle.net/uxkcyomf/
1 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
我想让我的元素基于缩放。当缩小到 19 时我不需要它可见,因为我的地图看起来不太好。
您可以简单地根据当前缩放级别以类似于此的方式显示/隐藏元素
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;
}
});
添加回答
举报
0/150
提交
取消