Add tests for ol.tilegrid.TileGrid

These tests are taken from ol.tilegrid.XYZ, to make sure that
ol.tilegrid.TileGrid works the same way. The additional tests show that the
#getTileCoordForXYAndResolution_() method do not handle coordinates at
tile boundaries properly, so this is fixed.
This commit is contained in:
Andreas Hocevar
2015-04-28 20:03:56 +02:00
parent 56e8575e41
commit 700903ca5c
2 changed files with 149 additions and 3 deletions
+5 -2
View File
@@ -365,8 +365,11 @@ ol.tilegrid.TileGrid.prototype.getTileCoordForXYAndResolution_ = function(
var origin = this.getOrigin(z);
var tileSize = ol.size.toSize(this.getTileSize(z), this.tmpSize_);
var tileCoordX = scale * (x - origin[0]) / (resolution * tileSize[0]);
var tileCoordY = scale * (y - origin[1]) / (resolution * tileSize[1]);
var adjust = reverseIntersectionPolicy ? 0.5 : 0;
var xFromOrigin = ((x - origin[0]) / resolution + adjust) | 0;
var yFromOrigin = ((y - origin[1]) / resolution + adjust) | 0;
var tileCoordX = scale * xFromOrigin / tileSize[0];
var tileCoordY = scale * yFromOrigin / tileSize[1];
if (reverseIntersectionPolicy) {
tileCoordX = Math.ceil(tileCoordX) - 1;