Add support for non-square tiles
This commit is contained in:
@@ -21,6 +21,7 @@ goog.require('ol.dom.BrowserFeature');
|
||||
goog.require('ol.extent');
|
||||
goog.require('ol.layer.Tile');
|
||||
goog.require('ol.renderer.dom.Layer');
|
||||
goog.require('ol.size');
|
||||
goog.require('ol.tilecoord');
|
||||
goog.require('ol.tilegrid.TileGrid');
|
||||
goog.require('ol.vec.Mat4');
|
||||
@@ -342,6 +343,12 @@ ol.renderer.dom.TileLayerZ_ = function(tileGrid, tileCoordOrigin) {
|
||||
*/
|
||||
this.transform_ = goog.vec.Mat4.createNumberIdentity();
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {ol.Size}
|
||||
*/
|
||||
this.tmpSize_ = [0, 0];
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -360,7 +367,8 @@ ol.renderer.dom.TileLayerZ_.prototype.addTile = function(tile, tileGutter) {
|
||||
if (tileCoordKey in this.tiles_) {
|
||||
return;
|
||||
}
|
||||
var tileSize = this.tileGrid_.getTileSize(tileCoordZ);
|
||||
var tileSize = ol.size.toSize(
|
||||
this.tileGrid_.getTileSize(tileCoordZ), this.tmpSize_);
|
||||
var image = tile.getImage(this);
|
||||
var imageStyle = image.style;
|
||||
// Bootstrap sets the style max-width: 100% for all images, which
|
||||
@@ -373,25 +381,25 @@ ol.renderer.dom.TileLayerZ_.prototype.addTile = function(tile, tileGutter) {
|
||||
tileElement = goog.dom.createElement(goog.dom.TagName.DIV);
|
||||
tileElementStyle = tileElement.style;
|
||||
tileElementStyle.overflow = 'hidden';
|
||||
tileElementStyle.width = tileSize + 'px';
|
||||
tileElementStyle.height = tileSize + 'px';
|
||||
tileElementStyle.width = tileSize[0] + 'px';
|
||||
tileElementStyle.height = tileSize[1] + 'px';
|
||||
imageStyle.position = 'absolute';
|
||||
imageStyle.left = -tileGutter + 'px';
|
||||
imageStyle.top = -tileGutter + 'px';
|
||||
imageStyle.width = (tileSize + 2 * tileGutter) + 'px';
|
||||
imageStyle.height = (tileSize + 2 * tileGutter) + 'px';
|
||||
imageStyle.width = (tileSize[0] + 2 * tileGutter) + 'px';
|
||||
imageStyle.height = (tileSize[1] + 2 * tileGutter) + 'px';
|
||||
goog.dom.appendChild(tileElement, image);
|
||||
} else {
|
||||
imageStyle.width = tileSize + 'px';
|
||||
imageStyle.height = tileSize + 'px';
|
||||
imageStyle.width = tileSize[0] + 'px';
|
||||
imageStyle.height = tileSize[1] + 'px';
|
||||
tileElement = image;
|
||||
tileElementStyle = imageStyle;
|
||||
}
|
||||
tileElementStyle.position = 'absolute';
|
||||
tileElementStyle.left =
|
||||
((tileCoordX - this.tileCoordOrigin_[1]) * tileSize) + 'px';
|
||||
((tileCoordX - this.tileCoordOrigin_[1]) * tileSize[0]) + 'px';
|
||||
tileElementStyle.top =
|
||||
((this.tileCoordOrigin_[2] - tileCoordY) * tileSize) + 'px';
|
||||
((this.tileCoordOrigin_[2] - tileCoordY) * tileSize[1]) + 'px';
|
||||
if (goog.isNull(this.documentFragment_)) {
|
||||
this.documentFragment_ = document.createDocumentFragment();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user