From e3a8dc89de422684a68a1bd9a9711a240befce4e Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Thu, 18 Jun 2015 09:45:38 +0200 Subject: [PATCH] Fix calculation of tile coord from coordinate Tile coord calculation was wrong in the case of reverseIntersectionPolicy for y coords, and for extents with +/- Infinity. --- src/ol/tilegrid/tilegrid.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ol/tilegrid/tilegrid.js b/src/ol/tilegrid/tilegrid.js index 1f6feef07c..2edb3d720a 100644 --- a/src/ol/tilegrid/tilegrid.js +++ b/src/ol/tilegrid/tilegrid.js @@ -391,9 +391,10 @@ ol.tilegrid.TileGrid.prototype.getTileCoordForXYAndResolution_ = function( var origin = this.getOrigin(z); var tileSize = ol.size.toSize(this.getTileSize(z), this.tmpSize_); - var adjust = reverseIntersectionPolicy ? 0.5 : 0; - var xFromOrigin = ((x - origin[0]) / resolution + adjust) | 0; - var yFromOrigin = ((y - origin[1]) / resolution + adjust) | 0; + var adjustX = reverseIntersectionPolicy ? 0.5 : 0; + var adjustY = reverseIntersectionPolicy ? 0 : 0.5; + var xFromOrigin = Math.floor((x - origin[0]) / resolution + adjustX); + var yFromOrigin = Math.floor((y - origin[1]) / resolution + adjustY); var tileCoordX = scale * xFromOrigin / tileSize[0]; var tileCoordY = scale * yFromOrigin / tileSize[1];