Openlayers 基于缩放的对象可见性不起作用
Openlayers zoom-based object visibility not working
我想让我的元素基于缩放。当缩小 19 时我不需要它可见,因为我的地图看起来不好看。
我尝试使用从layers.js
文件导出的maxResolution
方法,当它被发现时,整个地图是由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 主要指的是地图的缩放下限 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 fiddle:
I would like to have my element zoom-based. I don't need it visible when zooming out of 19, because my map doesn't look nice.
您可以简单地 show/hide 一个元素,具体取决于当前的缩放级别,方法与此类似(缩放更改处理程序取自 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;
}
});
我想让我的元素基于缩放。当缩小 19 时我不需要它可见,因为我的地图看起来不好看。
我尝试使用从layers.js
文件导出的maxResolution
方法,当它被发现时,整个地图是由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 主要指的是地图的缩放下限 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 fiddle:
I would like to have my element zoom-based. I don't need it visible when zooming out of 19, because my map doesn't look nice.
您可以简单地 show/hide 一个元素,具体取决于当前的缩放级别,方法与此类似(缩放更改处理程序取自 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;
}
});