Change ol.TileCoord to an Array

This commit is contained in:
Éric Lemoine
2014-08-15 23:33:22 +02:00
parent 0d20b337a0
commit ba035abb1f
29 changed files with 318 additions and 323 deletions

View File

@@ -224,9 +224,9 @@ goog.inherits(ol.test.source.TileMock, ol.source.Tile);
* @inheritDoc
*/
ol.test.source.TileMock.prototype.getTile = function(z, x, y) {
var key = ol.TileCoord.getKeyZXY(z, x, y);
var key = ol.tilecoord.getKeyZXY(z, x, y);
var tileState = this.loaded_[key] ? ol.TileState.LOADED : ol.TileState.IDLE;
return new ol.Tile(new ol.TileCoord(z, x, y), tileState);
return new ol.Tile([z, x, y], tileState);
};
@@ -270,9 +270,9 @@ describe('ol.test.source.TileMock', function() {
goog.require('goog.object');
goog.require('ol.Tile');
goog.require('ol.TileCoord');
goog.require('ol.TileState');
goog.require('ol.proj');
goog.require('ol.source.Source');
goog.require('ol.source.Tile');
goog.require('ol.tilecoord');
goog.require('ol.tilegrid.TileGrid');

View File

@@ -109,7 +109,7 @@ describe('ol.source.TileWMS', function() {
it('returns a tile if it is contained within layers extent', function() {
options.extent = [-80, -40, -50, -10];
var source = new ol.source.TileWMS(options);
var tileCoord = new ol.TileCoord(3, 2, 1);
var tileCoord = [3, 2, 1];
var url = source.tileUrlFunction(tileCoord, 1, ol.proj.get('EPSG:4326'));
var uri = new goog.Uri(url);
var queryData = uri.getQueryData();
@@ -119,7 +119,7 @@ describe('ol.source.TileWMS', function() {
it('returns a tile if it intersects layers extent', function() {
options.extent = [-80, -40, -40, -10];
var source = new ol.source.TileWMS(options);
var tileCoord = new ol.TileCoord(3, 3, 1);
var tileCoord = [3, 3, 1];
var url = source.tileUrlFunction(tileCoord, 1, ol.proj.get('EPSG:4326'));
var uri = new goog.Uri(url);
var queryData = uri.getQueryData();
@@ -201,5 +201,4 @@ describe('ol.source.TileWMS', function() {
goog.require('goog.Uri');
goog.require('ol.ImageTile');
goog.require('ol.source.TileWMS');
goog.require('ol.TileCoord');
goog.require('ol.proj');

View File

@@ -54,13 +54,13 @@ describe('ol.source.XYZ', function() {
it('returns the expected URL', function() {
var tileUrl = xyzTileSource.tileUrlFunction(
new ol.TileCoord(6, -31, -23));
[6, -31, -23]);
expect(tileUrl).to.eql('6/33/22');
tileUrl = xyzTileSource.tileUrlFunction(new ol.TileCoord(6, 33, -23));
tileUrl = xyzTileSource.tileUrlFunction([6, 33, -23]);
expect(tileUrl).to.eql('6/33/22');
tileUrl = xyzTileSource.tileUrlFunction(new ol.TileCoord(6, 97, -23));
tileUrl = xyzTileSource.tileUrlFunction([6, 97, -23]);
expect(tileUrl).to.eql('6/33/22');
});
@@ -70,13 +70,13 @@ describe('ol.source.XYZ', function() {
it('returns the expected URL', function() {
var tileUrl = xyzTileSource.tileUrlFunction(
new ol.TileCoord(6, 33, -87));
[6, 33, -87]);
expect(tileUrl).to.be(undefined);
tileUrl = xyzTileSource.tileUrlFunction(new ol.TileCoord(6, 33, -23));
tileUrl = xyzTileSource.tileUrlFunction([6, 33, -23]);
expect(tileUrl).to.eql('6/33/22');
tileUrl = xyzTileSource.tileUrlFunction(new ol.TileCoord(6, 33, 41));
tileUrl = xyzTileSource.tileUrlFunction([6, 33, 41]);
expect(tileUrl).to.be(undefined);
});

View File

@@ -4,47 +4,49 @@ describe('ol.TileCoord', function() {
describe('create', function() {
it('sets x y z properties as expected', function() {
var tc = new ol.TileCoord(1, 2, 3);
expect(tc.z).to.eql(1);
expect(tc.x).to.eql(2);
expect(tc.y).to.eql(3);
var tileCoord = [1, 2, 3];
expect(tileCoord[0]).to.eql(1);
expect(tileCoord[1]).to.eql(2);
expect(tileCoord[2]).to.eql(3);
});
});
describe('create from quad key', function() {
it('sets x y z properties as expected', function() {
var tc = ol.TileCoord.createFromQuadKey('213');
expect(tc.z).to.eql(3);
expect(tc.x).to.eql(3);
expect(tc.y).to.eql(5);
var tileCoord = ol.tilecoord.createFromQuadKey('213');
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(3);
expect(tileCoord[2]).to.eql(5);
});
});
describe('create from string', function() {
it('sets x y z properties as expected', function() {
var str = '1/2/3';
var tc = ol.TileCoord.createFromString(str);
expect(tc.z).to.eql(1);
expect(tc.x).to.eql(2);
expect(tc.y).to.eql(3);
var tileCoord = ol.tilecoord.createFromString(str);
expect(tileCoord[0]).to.eql(1);
expect(tileCoord[1]).to.eql(2);
expect(tileCoord[2]).to.eql(3);
});
});
describe('call quadKey', function() {
it('returns expected string', function() {
var tc = new ol.TileCoord(3, 3, 5);
var s = tc.quadKey();
var tileCoord = [3, 3, 5];
var s = ol.tilecoord.quadKey(tileCoord);
expect(s).to.eql('213');
});
});
describe('hash', function() {
it('produces different hashes for different tile coords', function() {
var tc1 = new ol.TileCoord(3, 2, 1);
var tc2 = new ol.TileCoord(3, 1, 1);
expect(tc1.hash()).not.to.eql(tc2.hash());
var tileCoord1 = [3, 2, 1];
var tileCoord2 = [3, 1, 1];
expect(ol.tilecoord.hash(tileCoord1)).not.to.eql(
ol.tilecoord.hash(tileCoord2));
});
});
});
goog.require('ol.TileCoord');
goog.require('ol.tilecoord');

View File

@@ -238,24 +238,24 @@ describe('ol.tilegrid.TileGrid', function() {
var tileCoord;
tileCoord = tileGrid.getTileCoordForCoordAndZ([0, 0], 3);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(0);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(0);
tileCoord = tileGrid.getTileCoordForCoordAndZ([0, 100000], 3);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(10);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(10);
tileCoord = tileGrid.getTileCoordForCoordAndZ([100000, 0], 3);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(10);
expect(tileCoord.y).to.eql(0);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(10);
expect(tileCoord[2]).to.eql(0);
tileCoord = tileGrid.getTileCoordForCoordAndZ([100000, 100000], 3);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(10);
expect(tileCoord.y).to.eql(10);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(10);
expect(tileCoord[2]).to.eql(10);
});
});
@@ -271,24 +271,24 @@ describe('ol.tilegrid.TileGrid', function() {
var tileCoord;
tileCoord = tileGrid.getTileCoordForCoordAndZ([0, 0], 3);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(-10);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(-10);
tileCoord = tileGrid.getTileCoordForCoordAndZ([0, 100000], 3);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(0);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(0);
tileCoord = tileGrid.getTileCoordForCoordAndZ([100000, 0], 3);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(10);
expect(tileCoord.y).to.eql(-10);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(10);
expect(tileCoord[2]).to.eql(-10);
tileCoord = tileGrid.getTileCoordForCoordAndZ([100000, 100000], 3);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(10);
expect(tileCoord.y).to.eql(0);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(10);
expect(tileCoord[2]).to.eql(0);
});
});
});
@@ -309,65 +309,65 @@ describe('ol.tilegrid.TileGrid', function() {
// gets the first tile at the origin
coordinate = [0, 0];
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coordinate, 10);
expect(tileCoord.z).to.eql(0);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(0);
expect(tileCoord[0]).to.eql(0);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(0);
// gets one tile northwest of the origin
coordinate = [-1280, 1280];
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coordinate, 10);
expect(tileCoord.z).to.eql(0);
expect(tileCoord.x).to.eql(-1);
expect(tileCoord.y).to.eql(0);
expect(tileCoord[0]).to.eql(0);
expect(tileCoord[1]).to.eql(-1);
expect(tileCoord[2]).to.eql(0);
// gets one tile northeast of the origin
coordinate = [1280, 1280];
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coordinate, 10);
expect(tileCoord.z).to.eql(0);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(0);
expect(tileCoord[0]).to.eql(0);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(0);
// gets one tile southeast of the origin
coordinate = [1280, -1280];
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coordinate, 10);
expect(tileCoord.z).to.eql(0);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(-1);
expect(tileCoord[0]).to.eql(0);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(-1);
// gets one tile southwest of the origin
coordinate = [-1280, -1280];
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coordinate, 10);
expect(tileCoord.z).to.eql(0);
expect(tileCoord.x).to.eql(-1);
expect(tileCoord.y).to.eql(-1);
expect(tileCoord[0]).to.eql(0);
expect(tileCoord[1]).to.eql(-1);
expect(tileCoord[2]).to.eql(-1);
// gets the tile to the east when on the edge
coordinate = [2560, -1280];
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coordinate, 10);
expect(tileCoord.z).to.eql(0);
expect(tileCoord.x).to.eql(1);
expect(tileCoord.y).to.eql(-1);
expect(tileCoord[0]).to.eql(0);
expect(tileCoord[1]).to.eql(1);
expect(tileCoord[2]).to.eql(-1);
// gets the tile to the north when on the edge
coordinate = [1280, -2560];
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coordinate, 10);
expect(tileCoord.z).to.eql(0);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(-1);
expect(tileCoord[0]).to.eql(0);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(-1);
// pixels are top aligned to the origin
coordinate = [1280, -2559.999];
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coordinate, 10);
expect(tileCoord.z).to.eql(0);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(-1);
expect(tileCoord[0]).to.eql(0);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(-1);
// pixels are left aligned to the origin
coordinate = [2559.999, -1280];
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coordinate, 10);
expect(tileCoord.z).to.eql(0);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(-1);
expect(tileCoord[0]).to.eql(0);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(-1);
});
});
@@ -386,16 +386,16 @@ describe('ol.tilegrid.TileGrid', function() {
// gets higher tile for edge intersection
tileCoord = tileGrid.getTileCoordForXYAndResolution_(
0, 0, 100, false);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(0);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(0);
expect(tileCoord[2]).to.eql(0);
// gets higher tile for edge intersection
tileCoord = tileGrid.getTileCoordForXYAndResolution_(
100000, 100000, 100, false);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(10);
expect(tileCoord.y).to.eql(10);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(10);
expect(tileCoord[2]).to.eql(10);
});
@@ -412,16 +412,16 @@ describe('ol.tilegrid.TileGrid', function() {
// can get lower tile for edge intersection
tileCoord = tileGrid.getTileCoordForXYAndResolution_(
0, 0, 100, true);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(-1);
expect(tileCoord.y).to.eql(-1);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(-1);
expect(tileCoord[2]).to.eql(-1);
// gets higher tile for edge intersection
tileCoord = tileGrid.getTileCoordForXYAndResolution_(
100000, 100000, 100, true);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(9);
expect(tileCoord.y).to.eql(9);
expect(tileCoord[0]).to.eql(3);
expect(tileCoord[1]).to.eql(9);
expect(tileCoord[2]).to.eql(9);
});
@@ -437,15 +437,15 @@ describe('ol.tilegrid.TileGrid', function() {
});
var center;
center = tileGrid.getTileCoordCenter(new ol.TileCoord(0, 0, 0));
center = tileGrid.getTileCoordCenter([0, 0, 0]);
expect(center[0]).to.eql(50000);
expect(center[1]).to.eql(50000);
center = tileGrid.getTileCoordCenter(new ol.TileCoord(3, 0, 0));
center = tileGrid.getTileCoordCenter([3, 0, 0]);
expect(center[0]).to.eql(5000);
expect(center[1]).to.eql(5000);
center = tileGrid.getTileCoordCenter(new ol.TileCoord(3, 9, 9));
center = tileGrid.getTileCoordCenter([3, 9, 9]);
expect(center[0]).to.eql(95000);
expect(center[1]).to.eql(95000);
});
@@ -461,19 +461,19 @@ describe('ol.tilegrid.TileGrid', function() {
});
var tileCoordExtent;
tileCoordExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(0, 0, 0));
tileCoordExtent = tileGrid.getTileCoordExtent([0, 0, 0]);
expect(tileCoordExtent[0]).to.eql(0);
expect(tileCoordExtent[1]).to.eql(0);
expect(tileCoordExtent[2]).to.eql(100000);
expect(tileCoordExtent[3]).to.eql(100000);
tileCoordExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(3, 9, 0));
tileCoordExtent = tileGrid.getTileCoordExtent([3, 9, 0]);
expect(tileCoordExtent[0]).to.eql(90000);
expect(tileCoordExtent[1]).to.eql(0);
expect(tileCoordExtent[2]).to.eql(100000);
expect(tileCoordExtent[3]).to.eql(10000);
tileCoordExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(3, 0, 9));
tileCoordExtent = tileGrid.getTileCoordExtent([3, 0, 9]);
expect(tileCoordExtent[0]).to.eql(0);
expect(tileCoordExtent[1]).to.eql(90000);
expect(tileCoordExtent[2]).to.eql(10000);
@@ -569,7 +569,7 @@ describe('ol.tilegrid.TileGrid', function() {
var zs = [], tileRanges = [];
tileGrid.forEachTileCoordParentTileRange(
new ol.TileCoord(3, 7, 3),
[3, 7, 3],
function(z, tileRange) {
zs.push(z);
tileRanges.push(tileRange);
@@ -643,7 +643,6 @@ describe('ol.tilegrid.TileGrid', function() {
});
goog.require('ol.Coordinate');
goog.require('ol.TileCoord');
goog.require('ol.proj');
goog.require('ol.proj.METERS_PER_UNIT');
goog.require('ol.proj.Projection');

View File

@@ -14,7 +14,7 @@ describe('ol.tilegrid.XYZ', function() {
it('iterates as expected', function() {
var tileCoord = new ol.TileCoord(5, 11, 21);
var tileCoord = [5, 11, 21];
var zs = [], tileRanges = [];
xyzTileGrid.forEachTileCoordParentTileRange(
tileCoord,

View File

@@ -19,39 +19,38 @@ describe('ol.TileRange', function() {
describe('contains', function() {
it('returns the expected value', function() {
var tileRange = new ol.TileRange(1, 3, 1, 3);
expect(tileRange.contains(new ol.TileCoord(0, 0, 0))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 0, 1))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 0, 2))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 0, 3))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 0, 4))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 1, 0))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 1, 1))).to.be.ok();
expect(tileRange.contains(new ol.TileCoord(0, 1, 2))).to.be.ok();
expect(tileRange.contains(new ol.TileCoord(0, 1, 3))).to.be.ok();
expect(tileRange.contains(new ol.TileCoord(0, 1, 4))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 2, 0))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 2, 1))).to.be.ok();
expect(tileRange.contains(new ol.TileCoord(0, 2, 2))).to.be.ok();
expect(tileRange.contains(new ol.TileCoord(0, 2, 3))).to.be.ok();
expect(tileRange.contains(new ol.TileCoord(0, 2, 4))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 3, 0))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 3, 1))).to.be.ok();
expect(tileRange.contains(new ol.TileCoord(0, 3, 2))).to.be.ok();
expect(tileRange.contains(new ol.TileCoord(0, 3, 3))).to.be.ok();
expect(tileRange.contains(new ol.TileCoord(0, 3, 4))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 4, 0))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 4, 1))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 4, 2))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 4, 3))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 4, 4))).to.not.be();
expect(tileRange.contains([0, 0, 0])).to.not.be();
expect(tileRange.contains([0, 0, 1])).to.not.be();
expect(tileRange.contains([0, 0, 2])).to.not.be();
expect(tileRange.contains([0, 0, 3])).to.not.be();
expect(tileRange.contains([0, 0, 4])).to.not.be();
expect(tileRange.contains([0, 1, 0])).to.not.be();
expect(tileRange.contains([0, 1, 1])).to.be.ok();
expect(tileRange.contains([0, 1, 2])).to.be.ok();
expect(tileRange.contains([0, 1, 3])).to.be.ok();
expect(tileRange.contains([0, 1, 4])).to.not.be();
expect(tileRange.contains([0, 2, 0])).to.not.be();
expect(tileRange.contains([0, 2, 1])).to.be.ok();
expect(tileRange.contains([0, 2, 2])).to.be.ok();
expect(tileRange.contains([0, 2, 3])).to.be.ok();
expect(tileRange.contains([0, 2, 4])).to.not.be();
expect(tileRange.contains([0, 3, 0])).to.not.be();
expect(tileRange.contains([0, 3, 1])).to.be.ok();
expect(tileRange.contains([0, 3, 2])).to.be.ok();
expect(tileRange.contains([0, 3, 3])).to.be.ok();
expect(tileRange.contains([0, 3, 4])).to.not.be();
expect(tileRange.contains([0, 4, 0])).to.not.be();
expect(tileRange.contains([0, 4, 1])).to.not.be();
expect(tileRange.contains([0, 4, 2])).to.not.be();
expect(tileRange.contains([0, 4, 3])).to.not.be();
expect(tileRange.contains([0, 4, 4])).to.not.be();
});
});
describe('boundingTileRange', function() {
it('returns the expected TileRange', function() {
var tileRange = new ol.TileRange.boundingTileRange(
new ol.TileCoord(3, 1, 3),
new ol.TileCoord(3, 2, 0));
[3, 1, 3], [3, 2, 0]);
expect(tileRange.minX).to.eql(1);
expect(tileRange.maxX).to.eql(2);
expect(tileRange.minY).to.eql(0);
@@ -61,8 +60,7 @@ describe('ol.TileRange', function() {
describe('with mixed z', function() {
expect(function() {
var tileRange = new ol.TileRange.boundingTileRange(
new ol.TileCoord(3, 1, 3),
new ol.TileCoord(4, 2, 0));
[3, 1, 3], [4, 2, 0]);
tileRange = tileRange; // suppress gjslint warning about unused variable
}).to.throwException();
});

View File

@@ -30,16 +30,16 @@ describe('ol.TileUrlFunction', function() {
describe('createFromTemplate', function() {
it('creates expected URL', function() {
var tileUrl = ol.TileUrlFunction.createFromTemplate('{z}/{x}/{y}');
expect(tileUrl(new ol.TileCoord(3, 2, 1))).to.eql('3/2/1');
expect(tileUrl([3, 2, 1])).to.eql('3/2/1');
expect(tileUrl(null)).to.be(undefined);
});
it('accepts {-y} placeholder', function() {
var tileUrl = ol.TileUrlFunction.createFromTemplate('{z}/{x}/{-y}');
expect(tileUrl(new ol.TileCoord(3, 2, 2))).to.eql('3/2/5');
expect(tileUrl([3, 2, 2])).to.eql('3/2/5');
});
it('replaces multiple placeholder occurrences', function() {
var tileUrl = ol.TileUrlFunction.createFromTemplate('{z}/{z}{x}{y}');
expect(tileUrl(new ol.TileCoord(3, 2, 1))).to.eql('3/321');
expect(tileUrl([3, 2, 1])).to.eql('3/321');
});
});
@@ -51,13 +51,19 @@ describe('ol.TileUrlFunction', function() {
'http://tile-3/{z}/{x}/{y}'
];
var tileUrlFunction = ol.TileUrlFunction.createFromTemplates(templates);
var tileCoord = new ol.TileCoord(3, 2, 1);
tileCoord.hash = function() { return 3; };
var tileCoord = [3, 2, 1];
sinon.stub(ol.tilecoord, 'hash', function() { return 3; });
expect(tileUrlFunction(tileCoord)).to.eql('http://tile-1/3/2/1');
tileCoord.hash = function() { return 2; };
ol.tilecoord.hash.restore();
sinon.stub(ol.tilecoord, 'hash', function() { return 2; });
expect(tileUrlFunction(tileCoord)).to.eql('http://tile-3/3/2/1');
tileCoord.hash = function() { return 1; };
ol.tilecoord.hash.restore();
sinon.stub(ol.tilecoord, 'hash', function() { return 1; });
expect(tileUrlFunction(tileCoord)).to.eql('http://tile-2/3/2/1');
ol.tilecoord.hash.restore();
});
});
@@ -65,10 +71,10 @@ describe('ol.TileUrlFunction', function() {
it('creates expected URL', function() {
var tileUrl = ol.TileUrlFunction.withTileCoordTransform(
function(tileCoord) {
return new ol.TileCoord(tileCoord.z, tileCoord.x, -tileCoord.y);
return [tileCoord[0], tileCoord[1], -tileCoord[2]];
},
ol.TileUrlFunction.createFromTemplate('{z}/{x}/{y}'));
expect(tileUrl(new ol.TileCoord(3, 2, -1))).to.eql('3/2/1');
expect(tileUrl([3, 2, -1])).to.eql('3/2/1');
expect(tileUrl(null)).to.be(undefined);
});
});
@@ -79,8 +85,8 @@ describe('ol.TileUrlFunction', function() {
ol.TileUrlFunction.createFromTemplate('a'),
ol.TileUrlFunction.createFromTemplate('b')
]);
var tileUrl1 = tileUrl(new ol.TileCoord(1, 0, 0));
var tileUrl2 = tileUrl(new ol.TileCoord(1, 0, 1));
var tileUrl1 = tileUrl([1, 0, 0]);
var tileUrl2 = tileUrl([1, 0, 1]);
expect(tileUrl1).not.to.be(tileUrl2);
expect(tileUrl(null)).to.be(undefined);
});