在Openalyers 5中获取所有图层的范围

时间:2018-11-25 16:54:01

标签: openlayers-5

我正在尝试进行一些琐碎的活动:使地图适合所有图层的范围。

但我被困住了:

这是我的代码:

import { createEmpty, getWidth, getHeight, extend } from 'ol/extent.js';

    function centraTuttiLayer(map)
    {
      var extent = createEmpty();
      //modifico l'estensione del layer per contenere tutto
      map.getLayers().forEach(function(l) {    
          extend(extent, l.getExtent());
      });
      map.getView().fit(extent);
    }

我总是将getExtent()设为空。 我也尝试过l.getSource()和getExtent(),但是没有运气。 我在做什么错了?

谢谢 马西莫

1 个答案:

答案 0 :(得分:0)

您无法获得图层范围。用源来做

map.getLayers().forEach(function(l) {
    let source = l.getSource();
    if(!(source instanceof OSM)){
        extend(extent, source.getExtent());
    }
});
map.getView().fit(extent,{
    maxZoom: 15,
    padding: [50,50,50,50]
});