Openlayers 3 получает экстент слоя

Я пытаюсь изменить экстент карты, чтобы он соответствовал экстенту слоя wms, используя OpenLayers 3.0
Я нашел пример, но у меня он не работает, не уверен, что он устарел

var extent = yourlayer.getSource().getExtent();
map.getView().fitExtent(extent, map.getSize());

console.log( 'Слой:' + yourlayer.getSource() )
вернуть Слой: [объект Объект]


НО

console.log( 'Слой:' + yourlayer.getSource().getExtent() )
return Uncaught TypeError: undefined не является функцией

В документации говорится, что у слоя есть метод getExtend(), но это тоже не работает.

console.log( 'Слой:' + yourlayer.getExtent() )
return Слой: не определен


person Juan Carlos Oropeza    schedule 21.01.2015    source источник


Ответы (1)


Убедитесь, что для слоя задан экстент и используется,

var extent = map.getView().calculateExtent(map.getSize());

Вместо,

var extent = yourlayer.getSource().getExtent();
person Dáire Walsh    schedule 26.01.2015
comment
Если вы видите последнее поле, попробуйте console.log( 'Layer:' + yourlayer.getExtent() ) , но у меня это не сработало. - person Juan Carlos Oropeza; 26.01.2015
comment
Вы определили свой слой как глобальную константу. В противном случае вам придется использовать map.getLayers.getArray()[layerPosistionInArray].getExtent() - person Dáire Walsh; 26.01.2015
comment
переменная степень = yourlayer.getExtent(); Это не работает. (я использую Openlayers 3.17). Выдает ошибку, что yourlayer.getExtent() не является функцией. Пожалуйста, помогите мне.. - person Satya Chandra; 11.07.2016