繁体   English   中英

基于 Openlayers 缩放的 object 可见性不起作用

[英]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 值,但它也没有用。

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 主要指的是 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

http://dev.openlayers.org/docs/files/OpenLayers/Layer/FixedZoomLevels-js.html#OpenLayers.Layer.FixedZoomLevels.getOLZoomFromMapObjectZoom

但看起来它们已被弃用。

我应该在这段代码中做什么? 这里还有什么我想念的吗?

我想根据缩放级别获得此文本。

以防万一我在这里发送带有 javascript 代码的 JS 小提琴:

https://jsfiddle.net/uxkcyomf/

我想让我的元素基于缩放。 缩小 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM