Merge pull request #639 from ahocevar/grid-align
When using a buffer, the grid lacks rows/columns at the top/left. r=@bartvde
This commit is contained in:
@@ -983,9 +983,9 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
|
|||||||
|
|
||||||
var viewSize = this.map.getSize();
|
var viewSize = this.map.getSize();
|
||||||
var minRows = Math.ceil(viewSize.h/this.tileSize.h) +
|
var minRows = Math.ceil(viewSize.h/this.tileSize.h) +
|
||||||
Math.max(1, 2 * this.buffer);
|
2 * this.buffer + 1;
|
||||||
var minCols = Math.ceil(viewSize.w/this.tileSize.w) +
|
var minCols = Math.ceil(viewSize.w/this.tileSize.w) +
|
||||||
Math.max(1, 2 * this.buffer);
|
2 * this.buffer + 1;
|
||||||
|
|
||||||
var origin = this.getTileOrigin();
|
var origin = this.getTileOrigin();
|
||||||
var resolution = this.getServerResolution();
|
var resolution = this.getServerResolution();
|
||||||
@@ -1193,7 +1193,7 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
|
|||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var buffer = this.buffer || 1;
|
var buffer = this.buffer + 1;
|
||||||
var scale = this.getResolutionScale();
|
var scale = this.getResolutionScale();
|
||||||
while(true) {
|
while(true) {
|
||||||
var tlViewPort = {
|
var tlViewPort = {
|
||||||
|
|||||||
+23
-6
@@ -76,8 +76,8 @@
|
|||||||
layer = new OpenLayers.Layer.WMS(name, url, params, {buffer:2});
|
layer = new OpenLayers.Layer.WMS(name, url, params, {buffer:2});
|
||||||
map.addLayer(layer);
|
map.addLayer(layer);
|
||||||
map.setCenter(new OpenLayers.LonLat(0,0),5);
|
map.setCenter(new OpenLayers.LonLat(0,0),5);
|
||||||
t.eq( layer.grid.length, 7, "Grid rows is correct." );
|
t.eq( layer.grid.length, 8, "Grid rows is correct." );
|
||||||
t.eq( layer.grid[0].length, 6, "Grid cols is correct." );
|
t.eq( layer.grid[0].length, 7, "Grid cols is correct." );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,6 +239,23 @@
|
|||||||
t.eq( zoom, 2, "getZoomForExtent() returns correct value");
|
t.eq( zoom, 2, "getZoomForExtent() returns correct value");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_moveGriddedTiles(t) {
|
||||||
|
t.plan(1);
|
||||||
|
var map = new OpenLayers.Map('map');
|
||||||
|
layer = new OpenLayers.Layer.WMS(name, url, params, {buffer: 2});
|
||||||
|
map.addLayer(layer);
|
||||||
|
map.setCenter([0, 0], 5);
|
||||||
|
var count = 0;
|
||||||
|
layer.shiftColumn = function(prepend) {
|
||||||
|
++count;
|
||||||
|
OpenLayers.Layer.WMS.prototype.shiftColumn.apply(this, arguments);
|
||||||
|
}
|
||||||
|
map.moveTo([15, 0]);
|
||||||
|
t.delay_call(.5, function() {
|
||||||
|
t.eq(count, 1, "column shifted once");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function test_Layer_Grid_moveTo(t) {
|
function test_Layer_Grid_moveTo(t) {
|
||||||
|
|
||||||
t.plan(17);
|
t.plan(17);
|
||||||
@@ -695,17 +712,17 @@
|
|||||||
map.setCenter(new OpenLayers.LonLat(0, 0), 4);
|
map.setCenter(new OpenLayers.LonLat(0, 0), 4);
|
||||||
t.eq( layer0.grid.length, 3, "Grid rows with buffer:0" );
|
t.eq( layer0.grid.length, 3, "Grid rows with buffer:0" );
|
||||||
map.setBaseLayer(layer1);
|
map.setBaseLayer(layer1);
|
||||||
t.eq( layer1.grid.length, 4, "Grid rows with buffer:1" );
|
t.eq( layer1.grid.length, 5, "Grid rows with buffer:1" );
|
||||||
map.setBaseLayer(layer2);
|
map.setBaseLayer(layer2);
|
||||||
t.eq( layer2.grid.length, 6, "Grid rows with buffer:2" );
|
t.eq( layer2.grid.length, 7, "Grid rows with buffer:2" );
|
||||||
|
|
||||||
// zooming in on Greenland exercises the bug from pre-r4313
|
// zooming in on Greenland exercises the bug from pre-r4313
|
||||||
map.setCenter(new OpenLayers.LonLat(0, 90), 4);
|
map.setCenter(new OpenLayers.LonLat(0, 90), 4);
|
||||||
t.eq( layer0.grid.length, 3, "Grid rows with buffer:0" );
|
t.eq( layer0.grid.length, 3, "Grid rows with buffer:0" );
|
||||||
map.setBaseLayer(layer1);
|
map.setBaseLayer(layer1);
|
||||||
t.eq( layer1.grid.length, 4, "Grid rows with buffer:1" );
|
t.eq( layer1.grid.length, 5, "Grid rows with buffer:1" );
|
||||||
map.setBaseLayer(layer2);
|
map.setBaseLayer(layer2);
|
||||||
t.eq( layer2.grid.length, 6, "Grid rows with buffer:2" );
|
t.eq( layer2.grid.length, 7, "Grid rows with buffer:2" );
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_Layer_Grid_destroy (t) {
|
function test_Layer_Grid_destroy (t) {
|
||||||
|
|||||||
Reference in New Issue
Block a user