0

我正在尝试做一项非常琐碎的活动:将地图拟合到所有图层的范围内。

但我被困住了:

这是我的代码:

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(),但没有运气。我究竟做错了什么?

谢谢马西莫

4

1 回答 1

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]
});
于 2019-08-02T12:59:57.943 回答