Merge pull request #239 from ahocevar/3625

Removing imageOffset and using getImageSize. r=@elemoine
This commit is contained in:
ahocevar
2012-02-26 09:25:29 -08:00
5 changed files with 13 additions and 28 deletions

View File

@@ -45,7 +45,7 @@
"http://demo.opengeo.org/geoserver/wms", "http://demo.opengeo.org/geoserver/wms",
{layers: 'topp:states'}, {layers: 'topp:states'},
{gutter: 15}); {gutter: 15});
var states = new OpenLayers.Layer.WMS( "Roads (no gutter)", var states = new OpenLayers.Layer.WMS( "States (no gutter)",
"http://demo.opengeo.org/geoserver/wms", "http://demo.opengeo.org/geoserver/wms",
{layers: 'topp:states'}); {layers: 'topp:states'});
map.addLayers([states, states15]); map.addLayers([states, states15]);

View File

@@ -159,13 +159,6 @@ OpenLayers.Layer = OpenLayers.Class({
*/ */
imageSize: null, imageSize: null,
/**
* Property: imageOffset
* {<OpenLayers.Pixel>} For layers with a gutter, the image offset
* represents displacement due to the gutter.
*/
imageOffset: null,
// OPTIONS // OPTIONS
/** /**
@@ -693,7 +686,7 @@ OpenLayers.Layer = OpenLayers.Class({
/** /**
* APIMethod: setTileSize * APIMethod: setTileSize
* Set the tile size based on the map size. This also sets layer.imageSize * Set the tile size based on the map size. This also sets layer.imageSize
* and layer.imageOffset for use by Tile.Image. * or use by Tile.Image.
* *
* Parameters: * Parameters:
* size - {<OpenLayers.Size>} * size - {<OpenLayers.Size>}
@@ -710,8 +703,6 @@ OpenLayers.Layer = OpenLayers.Class({
// this.name + ": layers with " + // this.name + ": layers with " +
// "gutters need non-null tile sizes"); // "gutters need non-null tile sizes");
//} //}
this.imageOffset = new OpenLayers.Pixel(-this.gutter,
-this.gutter);
this.imageSize = new OpenLayers.Size(tileSize.w + (2*this.gutter), this.imageSize = new OpenLayers.Size(tileSize.w + (2*this.gutter),
tileSize.h + (2*this.gutter)); tileSize.h + (2*this.gutter));
} }

View File

@@ -208,11 +208,12 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
* code. * code.
*/ */
positionTile: function() { positionTile: function() {
var style = this.getTile().style; var style = this.getTile().style,
size = this.layer.getImageSize(this.bounds);
style.left = this.position.x + "%"; style.left = this.position.x + "%";
style.top = this.position.y + "%"; style.top = this.position.y + "%";
style.width = this.size.w + "%"; style.width = size.w + "%";
style.height = this.size.h + "%"; style.height = size.h + "%";
}, },
/** /**
@@ -256,11 +257,6 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
var top = this.layer.gutter / this.layer.tileSize.h * 100; var top = this.layer.gutter / this.layer.tileSize.h * 100;
style.left = -left + "%"; style.left = -left + "%";
style.top = -top + "%"; style.top = -top + "%";
style.width = (2 * left + 100) + "%";
style.height = (2 * top + 100) + "%";
} else {
style.width = "100%";
style.height = "100%";
} }
style.visibility = "hidden"; style.visibility = "hidden";
style.opacity = 0; style.opacity = 0;

View File

@@ -764,7 +764,7 @@
} }
function test_layer_setTileSize(t) { function test_layer_setTileSize(t) {
t.plan(6); t.plan(4);
layer = new OpenLayers.Layer(); layer = new OpenLayers.Layer();
@@ -784,7 +784,6 @@
var size = new OpenLayers.Size(2,2); var size = new OpenLayers.Size(2,2);
layer.setTileSize(size); layer.setTileSize(size);
t.ok(layer.tileSize.equals(size), "size paramater set correctly to layer's tile size"); t.ok(layer.tileSize.equals(size), "size paramater set correctly to layer's tile size");
t.ok(layer.imageOffset == null, "imageOffset and imageSize null when no gutters")
//set on layer //set on layer
layer.tileSize = layerTileSize; layer.tileSize = layerTileSize;
@@ -803,10 +802,8 @@
size = new OpenLayers.Size(10,100); size = new OpenLayers.Size(10,100);
layer.setTileSize(size); layer.setTileSize(size);
var desiredImageOffset = new OpenLayers.Pixel(-15, -15);
var desiredImageSize = new OpenLayers.Size(40, 130); var desiredImageSize = new OpenLayers.Size(40, 130);
t.ok(layer.imageOffset.equals(desiredImageOffset), "image offset correctly calculated");
t.ok(layer.imageSize.equals(desiredImageSize), "image size correctly calculated"); t.ok(layer.imageSize.equals(desiredImageSize), "image size correctly calculated");
} }

View File

@@ -295,9 +295,6 @@
t.ok(tile.layer.imageSize == null, t.ok(tile.layer.imageSize == null,
"zero size gutter doesn't set image size"); "zero size gutter doesn't set image size");
t.ok(tile.layer.imageOffset == null,
"zero size gutter doesn't set image offset");
var zero_gutter_bounds = tile.bounds; var zero_gutter_bounds = tile.bounds;
map.destroy(); map.destroy();
@@ -312,8 +309,12 @@
tile.size.h + (2 * gutter))), tile.size.h + (2 * gutter))),
"gutter properly changes image size"); "gutter properly changes image size");
t.ok(tile.layer.imageOffset.equals(new OpenLayers.Pixel(-gutter, -gutter)), var offsetLeft = -(gutter / layer.tileSize.w * 100) | 0;
"gutter properly sets image offset"); var offsetTop = -(gutter / layer.tileSize.h * 100) | 0;
t.eq(parseInt(tile.imgDiv.style.left, 10), offsetLeft,
"gutter properly sets image left style");
t.eq(parseInt(tile.imgDiv.style.top, 10), offsetTop,
"gutter properly sets image top style");
t.ok(tile.bounds.equals(zero_gutter_bounds), t.ok(tile.bounds.equals(zero_gutter_bounds),
"gutter doesn't affect tile bounds"); "gutter doesn't affect tile bounds");