diff --git a/src/ol/Map.js b/src/ol/Map.js index 3242bf5fd5..052f0ca334 100644 --- a/src/ol/Map.js +++ b/src/ol/Map.js @@ -91,6 +91,8 @@ ol.Map.DEFAULT_TILE_SIZE = 256; * @return {ol.Loc} Location. */ ol.Map.prototype.getCenter = function() { + var proj = this.getUserProjection(); + this.center_ = this.center_.transform(proj); return this.center_; }; @@ -201,7 +203,12 @@ ol.Map.prototype.getResolutionForZoom = function(zoom) { * @param {ol.Loc} center Center. */ ol.Map.prototype.setCenter = function(center) { - this.center_ = center; + var proj = center.getProjection(); + if (goog.isNull(proj)) { + proj = this.getUserProjection(); + center.setProjection(proj); + } + this.center_ = center.transform(this.getProjection()); }; diff --git a/src/ol/layer/XYZ.js b/src/ol/layer/XYZ.js index 60dc65d660..d9ff88ef89 100644 --- a/src/ol/layer/XYZ.js +++ b/src/ol/layer/XYZ.js @@ -130,26 +130,22 @@ ol.layer.XYZ.prototype.getData = function(bounds, resolution) { offsetY = Math.floor( (tileOriginY - boundsMaxY) / tileHeightGeo), - gridWidth = Math.ceil( - (boundsMaxX - boundsMinX) / tileWidthGeo), - gridHeight = Math.ceil( - (boundsMaxY - boundsMinY) / tileHeightGeo); + gridLeft = tileOriginX + tileWidthGeo * offsetX, + gridTop = tileOriginY - tileHeightGeo * offsetY; - var tiles = [], - tile, - url, - i, ii, - j, jj; - - for (i=0, ii=gridWidth; i boundsMinY) { tiles[i] = []; - for (j=0, jj=gridHeight; j + diff --git a/test/spec/ol/layer/XYZ.test.js b/test/spec/ol/layer/XYZ.test.js index 5c5f618d09..d8b595fedc 100644 --- a/test/spec/ol/layer/XYZ.test.js +++ b/test/spec/ol/layer/XYZ.test.js @@ -64,7 +64,6 @@ describe('ol.layer.XYZ', function() { }); }); - /* describe('extent -64,-64,64,64, resolution 0.5', function() { it('returns the expected data', function() { @@ -94,6 +93,6 @@ describe('ol.layer.XYZ', function() { expect(tile.getImg()).toBeDefined(); }); }); - */ + }); });