Use snapCenterToPixel in Canvas renderer

This commit is contained in:
Tom Payne
2013-03-10 15:48:35 +01:00
parent 06463471e1
commit c01068642b
@@ -6,6 +6,7 @@ goog.provide('ol.renderer.canvas.TileLayer');
goog.require('goog.array'); goog.require('goog.array');
goog.require('goog.dom'); goog.require('goog.dom');
goog.require('goog.vec.Mat4'); goog.require('goog.vec.Mat4');
goog.require('ol.Extent');
goog.require('ol.Size'); goog.require('ol.Size');
goog.require('ol.Tile'); goog.require('ol.Tile');
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
@@ -103,8 +104,17 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
var z = tileGrid.getZForResolution(view2DState.resolution); var z = tileGrid.getZForResolution(view2DState.resolution);
var tileSize = tileGrid.getTileSize(z); var tileSize = tileGrid.getTileSize(z);
var tileResolution = tileGrid.getResolution(z); var tileResolution = tileGrid.getResolution(z);
var center = view2DState.center;
var extent;
if (tileResolution == view2DState.resolution) {
center = this.snapCenterToPixel(center, tileResolution, frameState.size);
extent = ol.Extent.getForView2DAndSize(
center, tileResolution, view2DState.rotation, frameState.size);
} else {
extent = frameState.extent;
}
var tileRange = tileGrid.getTileRangeForExtentAndResolution( var tileRange = tileGrid.getTileRangeForExtentAndResolution(
frameState.extent, tileResolution); extent, tileResolution);
var tileRangeWidth = tileRange.getWidth(); var tileRangeWidth = tileRange.getWidth();
var tileRangeHeight = tileRange.getHeight(); var tileRangeHeight = tileRange.getHeight();
@@ -235,7 +245,7 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
} }
this.updateUsedTiles(frameState.usedTiles, tileSource, z, tileRange); this.updateUsedTiles(frameState.usedTiles, tileSource, z, tileRange);
tileSource.useLowResolutionTiles(z, frameState.extent, tileGrid); tileSource.useLowResolutionTiles(z, extent, tileGrid);
this.scheduleExpireCache(frameState, tileSource); this.scheduleExpireCache(frameState, tileSource);
var transform = this.transform_; var transform = this.transform_;
@@ -250,8 +260,8 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
1); 1);
goog.vec.Mat4.translate( goog.vec.Mat4.translate(
transform, transform,
(origin.x - view2DState.center.x) / tileResolution, (origin.x - center.x) / tileResolution,
(view2DState.center.y - origin.y) / tileResolution, (center.y - origin.y) / tileResolution,
0); 0);
}; };