0

寻求一些帮助。我知道这有点像

new OpenLayers.Control.ZoomStatus({
  autoActivate: true
})

还希望为缩放状态添加一个 div:或者最好的方法是什么?

如果有人可以提供一些见解,将不胜感激。在文档中找不到答案。

4

2 回答 2

4

我不相信当前版本的 openlayers 已经实现了此控件。

最好的方法是在地图上添加您自己的元素以显示缩放级别并使用

map.getZoom()

计算出显示它的缩放级别。有两种方法可以接近它。一个 ios 用于扩展 OpenLayers.Control.Zoom 类并将您自己的函数添加到绘图 onZoomClick 函数中。然后将您的控件添加到地图中以代替 Normal OpenLayers.Control.zoom

第二个是向您的地图添加一个事件以捕获缩放事件并更新您的元素以在那里显示缩放级别。为此,您将在地图上使用 map.events.register() 调用。

进行更新的代码应如下所示

 var zoomLevel = map.getZoom();
  document.getElementById('ZoomElement').innerHTML =  'Current Zoom: ' + zoomlevel + 'of ' + (map.numZoomLevels + 1);
于 2013-07-26T01:50:15.690 回答
1

为 OL6 更新 @Darkcylde。getZoom现在作用于查看。

我还添加了十分之一的放大倍数。我只显示了数字,但这是一个很小的变化

map.on('rendercomplete',function(e) {
  var zoomLevel = map.getView().getZoom();
  var zoomRounded = Math.round(zoomLevel*10)/10;
  document.getElementById('ZoomElement').innerHTML = zoomRounded;
})
于 2020-10-23T21:58:43.273 回答