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:
ahocevar
2012-08-21 04:47:10 -07:00
2 changed files with 26 additions and 9 deletions

View File

@@ -983,9 +983,9 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
var viewSize = this.map.getSize();
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) +
Math.max(1, 2 * this.buffer);
2 * this.buffer + 1;
var origin = this.getTileOrigin();
var resolution = this.getServerResolution();
@@ -1193,7 +1193,7 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
);
return;
}
var buffer = this.buffer || 1;
var buffer = this.buffer + 1;
var scale = this.getResolutionScale();
while(true) {
var tlViewPort = {

View File

@@ -76,8 +76,8 @@
layer = new OpenLayers.Layer.WMS(name, url, params, {buffer:2});
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(0,0),5);
t.eq( layer.grid.length, 7, "Grid rows is correct." );
t.eq( layer.grid[0].length, 6, "Grid cols is correct." );
t.eq( layer.grid.length, 8, "Grid rows 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");
}
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) {
t.plan(17);
@@ -695,17 +712,17 @@
map.setCenter(new OpenLayers.LonLat(0, 0), 4);
t.eq( layer0.grid.length, 3, "Grid rows with buffer:0" );
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);
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
map.setCenter(new OpenLayers.LonLat(0, 90), 4);
t.eq( layer0.grid.length, 3, "Grid rows with buffer:0" );
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);
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) {