fix for #785 - fix up gutter logic a little bit. on a path to getting all gutter info in one place

git-svn-id: http://svn.openlayers.org/trunk/openlayers@3555 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
euzuro
2007-07-02 22:51:50 +00:00
parent d2c2b011e7
commit bb6f69d83f
9 changed files with 37 additions and 37 deletions

View File

@@ -381,6 +381,14 @@ OpenLayers.Layer.prototype = {
this.setTileSize();
}
},
/**
* @returns The size that the image should be, taking into account gutters
* @tile OpenLayers.Size
*/
getImageSize: function() {
return (this.imageSize || this.tileSize);
},
/**
* APIMethod: setTileSize
@@ -405,11 +413,6 @@ OpenLayers.Layer.prototype = {
this.imageOffset = new OpenLayers.Pixel(-this.gutter, -this.gutter);
this.imageSize = new OpenLayers.Size(tileSize.w + (2 * this.gutter),
tileSize.h + (2 * this.gutter));
} else {
// layers without gutters may have null tile size - as long
// as they don't rely on Tile.Image
this.imageSize = tileSize;
this.imageOffset = new OpenLayers.Pixel(0, 0);
}
},

View File

@@ -172,15 +172,12 @@ OpenLayers.Layer.Image.prototype =
},
/**
* Set the tile size based on the map size. This also sets layer.imageSize
* and layer.imageOffset for use by Tile.Image.
* Set the tile size based on the map size.
*/
setTileSize: function() {
var tileWidth = this.extent.getWidth() / this.map.getResolution();
var tileHeight = this.extent.getHeight() / this.map.getResolution();
this.tileSize = new OpenLayers.Size(tileWidth, tileHeight);
this.imageSize = this.tileSize;
this.imageOffset = new OpenLayers.Pixel(0, 0);
},
/**

View File

@@ -119,15 +119,17 @@ OpenLayers.Layer.MapServer.prototype =
bounds = this.adjustBounds(bounds);
// Make a list, so that getFullRequestString uses literal ","
var extent = [bounds.left, bounds. bottom, bounds.right, bounds.top];
var imageSize = this.getImageSize();
// make lists, so that literal ','s are used
var url = this.getFullRequestString(
{mapext: extent,
imgext: extent,
map_size: [this.imageSize.w, this.imageSize.h],
imgx: this.imageSize.w / 2,
imgy: this.imageSize.h / 2,
imgxy: [this.imageSize.w, this.imageSize.h]
map_size: [imageSize.w, imageSize.h],
imgx: imageSize.w / 2,
imgy: imageSize.h / 2,
imgxy: [imageSize.w, imageSize.h]
});
return url;

View File

@@ -125,16 +125,13 @@ OpenLayers.Layer.MapServer.Untiled.prototype =
/**
* Method: setTileSize
* Set the tile size based on the map size. This also sets layer.imageSize
* and layer.imageOffset for use by Tile.Image.
* Set the tile size based on the map size.
*/
setTileSize: function() {
var tileSize = this.map.getSize();
tileSize.w = tileSize.w * this.ratio;
tileSize.h = tileSize.h * this.ratio;
this.tileSize = tileSize;
this.imageSize = tileSize;
this.imageOffset = new OpenLayers.Pixel(0, 0);
},
/**

View File

@@ -142,10 +142,12 @@ OpenLayers.Layer.WMS.prototype =
*/
getURL: function (bounds) {
bounds = this.adjustBounds(bounds);
var imageSize = this.getImageSize();
return this.getFullRequestString(
{BBOX:bounds.toBBOX(),
WIDTH:this.imageSize.w,
HEIGHT:this.imageSize.h});
WIDTH:imageSize.w,
HEIGHT:imageSize.h});
},
/**

View File

@@ -147,16 +147,13 @@ OpenLayers.Layer.WMS.Untiled.prototype =
/**
* Method: setTileSize
* Set the tile size based on the map size. This also sets layer.imageSize
* and layer.imageOffset for use by Tile.Image.
* Set the tile size based on the map size.
*/
setTileSize: function() {
var tileSize = this.map.getSize();
tileSize.w = tileSize.w * this.ratio;
tileSize.h = tileSize.h * this.ratio;
this.tileSize = tileSize;
this.imageSize = tileSize;
this.imageOffset = new OpenLayers.Pixel(0, 0);
},
/**

View File

@@ -107,13 +107,14 @@ OpenLayers.Tile.Image.prototype =
OpenLayers.Util.modifyDOMElement(this.frame,
null, this.position, this.size);
var imageSize = this.layer.getImageSize();
if (this.layer.alpha) {
OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv,
null, null, this.layer.imageSize, this.url);
null, null, imageSize, this.url);
} else {
this.imgDiv.src = this.url;
OpenLayers.Util.modifyDOMElement(this.imgDiv,
null, null, this.layer.imageSize) ;
null, null, imageSize) ;
}
this.drawn = true;
return true;
@@ -153,10 +154,14 @@ OpenLayers.Tile.Image.prototype =
* Creates the imgDiv property on the tile.
*/
initImgDiv: function() {
var offset = this.layer.imageOffset;
var size = this.layer.getImageSize();
if (this.layer.alpha) {
this.imgDiv = OpenLayers.Util.createAlphaImageDiv(null,
this.layer.imageOffset,
this.layer.imageSize,
offset,
size,
null,
"relative",
null,
@@ -165,8 +170,8 @@ OpenLayers.Tile.Image.prototype =
true);
} else {
this.imgDiv = OpenLayers.Util.createImage(null,
this.layer.imageOffset,
this.layer.imageSize,
offset,
size,
null,
"relative",
null,