diff --git a/examples/gutter.html b/examples/gutter.html
index 1d16e504c0..3dd4dbf082 100644
--- a/examples/gutter.html
+++ b/examples/gutter.html
@@ -45,7 +45,7 @@
"http://demo.opengeo.org/geoserver/wms",
{layers: 'topp:states'},
{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",
{layers: 'topp:states'});
map.addLayers([states, states15]);
diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js
index 687627e2f7..1a2a1999e4 100644
--- a/lib/OpenLayers/Layer.js
+++ b/lib/OpenLayers/Layer.js
@@ -159,13 +159,6 @@ OpenLayers.Layer = OpenLayers.Class({
*/
imageSize: null,
- /**
- * Property: imageOffset
- * {} For layers with a gutter, the image offset
- * represents displacement due to the gutter.
- */
- imageOffset: null,
-
// OPTIONS
/**
@@ -693,7 +686,7 @@ OpenLayers.Layer = OpenLayers.Class({
/**
* APIMethod: setTileSize
* 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:
* size - {}
@@ -710,8 +703,6 @@ OpenLayers.Layer = OpenLayers.Class({
// this.name + ": layers with " +
// "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),
tileSize.h + (2*this.gutter));
}
diff --git a/lib/OpenLayers/Tile/Image.js b/lib/OpenLayers/Tile/Image.js
index 5332c1581d..aef46ff49e 100644
--- a/lib/OpenLayers/Tile/Image.js
+++ b/lib/OpenLayers/Tile/Image.js
@@ -208,11 +208,12 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
* code.
*/
positionTile: function() {
- var style = this.getTile().style;
+ var style = this.getTile().style,
+ size = this.layer.getImageSize(this.bounds);
style.left = this.position.x + "%";
style.top = this.position.y + "%";
- style.width = this.size.w + "%";
- style.height = this.size.h + "%";
+ style.width = size.w + "%";
+ 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;
style.left = -left + "%";
style.top = -top + "%";
- style.width = (2 * left + 100) + "%";
- style.height = (2 * top + 100) + "%";
- } else {
- style.width = "100%";
- style.height = "100%";
}
style.visibility = "hidden";
style.opacity = 0;
diff --git a/tests/Layer.html b/tests/Layer.html
index 6f571f5600..eb2c9270f7 100644
--- a/tests/Layer.html
+++ b/tests/Layer.html
@@ -764,7 +764,7 @@
}
function test_layer_setTileSize(t) {
- t.plan(6);
+ t.plan(4);
layer = new OpenLayers.Layer();
@@ -784,7 +784,6 @@
var size = new OpenLayers.Size(2,2);
layer.setTileSize(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
layer.tileSize = layerTileSize;
@@ -803,10 +802,8 @@
size = new OpenLayers.Size(10,100);
layer.setTileSize(size);
- var desiredImageOffset = new OpenLayers.Pixel(-15, -15);
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");
}
diff --git a/tests/Tile/Image.html b/tests/Tile/Image.html
index ca0b42e14d..029e2d221e 100644
--- a/tests/Tile/Image.html
+++ b/tests/Tile/Image.html
@@ -295,9 +295,6 @@
t.ok(tile.layer.imageSize == null,
"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;
map.destroy();
@@ -312,8 +309,12 @@
tile.size.h + (2 * gutter))),
"gutter properly changes image size");
- t.ok(tile.layer.imageOffset.equals(new OpenLayers.Pixel(-gutter, -gutter)),
- "gutter properly sets image offset");
+ var offsetLeft = -(gutter / layer.tileSize.w * 100) | 0;
+ 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),
"gutter doesn't affect tile bounds");