Use the layergroup's extent if no extent provided
This commit is contained in:
@@ -214,9 +214,13 @@ ol.layer.Group.prototype.getLayerStatesArray = function(opt_states) {
|
|||||||
layerState.maxResolution, ownLayerState.maxResolution);
|
layerState.maxResolution, ownLayerState.maxResolution);
|
||||||
layerState.minResolution = Math.max(
|
layerState.minResolution = Math.max(
|
||||||
layerState.minResolution, ownLayerState.minResolution);
|
layerState.minResolution, ownLayerState.minResolution);
|
||||||
if (goog.isDef(ownLayerState.extent) && goog.isDef(layerState.extent)) {
|
if (goog.isDef(ownLayerState.extent)) {
|
||||||
layerState.extent = ol.extent.getIntersection(
|
if (goog.isDef(layerState.extent)) {
|
||||||
layerState.extent, ownLayerState.extent);
|
layerState.extent = ol.extent.getIntersection(
|
||||||
|
layerState.extent, ownLayerState.extent);
|
||||||
|
} else {
|
||||||
|
layerState.extent = ownLayerState.extent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -382,6 +382,12 @@ describe('ol.layer.Group', function() {
|
|||||||
maxResolution: 500,
|
maxResolution: 500,
|
||||||
minResolution: 0.25
|
minResolution: 0.25
|
||||||
});
|
});
|
||||||
|
var layer3 = new ol.layer.Layer({
|
||||||
|
source: new ol.source.Source({
|
||||||
|
projection: 'EPSG:4326'
|
||||||
|
}),
|
||||||
|
extent: [-5, -2, 5, 2]
|
||||||
|
});
|
||||||
|
|
||||||
it('does not transform layerStates by default', function() {
|
it('does not transform layerStates by default', function() {
|
||||||
var layerGroup = new ol.layer.Group({
|
var layerGroup = new ol.layer.Group({
|
||||||
@@ -405,6 +411,29 @@ describe('ol.layer.Group', function() {
|
|||||||
goog.dispose(layerGroup);
|
goog.dispose(layerGroup);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('uses the layer group extent if layer has no extent', function() {
|
||||||
|
var groupExtent = [-10, -5, 10, 5];
|
||||||
|
var layerGroup = new ol.layer.Group({
|
||||||
|
extent: groupExtent,
|
||||||
|
layers: [layer1]
|
||||||
|
});
|
||||||
|
var layerStatesArray = layerGroup.getLayerStatesArray();
|
||||||
|
expect(layerStatesArray[0].extent).to.eql(groupExtent);
|
||||||
|
goog.dispose(layerGroup);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('uses the intersection of group and child extent', function() {
|
||||||
|
var groupExtent = [-10, -5, 10, 5];
|
||||||
|
var layerGroup = new ol.layer.Group({
|
||||||
|
extent: groupExtent,
|
||||||
|
layers: [layer3]
|
||||||
|
});
|
||||||
|
var layerStatesArray = layerGroup.getLayerStatesArray();
|
||||||
|
expect(layerStatesArray[0].extent).to.eql(
|
||||||
|
ol.extent.getIntersection(layer3.getExtent(), groupExtent));
|
||||||
|
goog.dispose(layerGroup);
|
||||||
|
});
|
||||||
|
|
||||||
it('transforms layerStates correctly', function() {
|
it('transforms layerStates correctly', function() {
|
||||||
var layerGroup = new ol.layer.Group({
|
var layerGroup = new ol.layer.Group({
|
||||||
layers: [layer1, layer2],
|
layers: [layer1, layer2],
|
||||||
@@ -451,6 +480,7 @@ describe('ol.layer.Group', function() {
|
|||||||
|
|
||||||
goog.dispose(layer1);
|
goog.dispose(layer1);
|
||||||
goog.dispose(layer2);
|
goog.dispose(layer2);
|
||||||
|
goog.dispose(layer3);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -460,6 +490,7 @@ goog.require('goog.dispose');
|
|||||||
goog.require('goog.events.EventType');
|
goog.require('goog.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.ObjectEventType');
|
goog.require('ol.ObjectEventType');
|
||||||
|
goog.require('ol.extent');
|
||||||
goog.require('ol.layer.Layer');
|
goog.require('ol.layer.Layer');
|
||||||
goog.require('ol.layer.Group');
|
goog.require('ol.layer.Group');
|
||||||
goog.require('ol.source.Source');
|
goog.require('ol.source.Source');
|
||||||
|
|||||||
Reference in New Issue
Block a user