Получить экстент на всех слоях в Openalyers 5 - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь сделать довольно тривиальное занятие: подогнать карту по размеру всех слоев.

Но я застрял:

Вот мой код:

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 голосов
/ 02 августа 2019

Вы не можете получить размер слоя.Сделайте это с источником

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]
});
...