簡體   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