Replace ol.tilegrid.XYZ with an ol.tilegrid.createXYZ function
This commit is contained in:
@@ -442,6 +442,32 @@ describe('ol.tilegrid.TileGrid', function() {
|
||||
|
||||
});
|
||||
|
||||
describe('createXYZ()', function() {
|
||||
|
||||
it('uses defaults', function() {
|
||||
var tileGrid = ol.tilegrid.createXYZ();
|
||||
expect(tileGrid.getExtent()).to.eql(
|
||||
ol.proj.get('EPSG:3857').getExtent());
|
||||
expect(tileGrid.getMinZoom()).to.equal(0);
|
||||
expect(tileGrid.getMaxZoom()).to.equal(ol.DEFAULT_MAX_ZOOM);
|
||||
expect(tileGrid.getTileSize()).to.equal(ol.DEFAULT_TILE_SIZE);
|
||||
});
|
||||
|
||||
it('respects configuration options', function() {
|
||||
var tileGrid = ol.tilegrid.createXYZ({
|
||||
extent: [10, 20, 30, 40],
|
||||
minZoom: 1,
|
||||
maxZoom: 2,
|
||||
tileSize: 128
|
||||
});
|
||||
expect(tileGrid.getExtent()).to.eql([10, 20, 30, 40]);
|
||||
expect(tileGrid.getMinZoom()).to.equal(1);
|
||||
expect(tileGrid.getMaxZoom()).to.equal(2);
|
||||
expect(tileGrid.getTileSize()).to.equal(128);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('getForProjection', function() {
|
||||
|
||||
it('gets the default tile grid for a projection', function() {
|
||||
|
||||
@@ -1,168 +0,0 @@
|
||||
goog.provide('ol.test.tilegrid.XYZ');
|
||||
|
||||
|
||||
describe('ol.tilegrid.XYZ', function() {
|
||||
|
||||
var xyzTileGrid;
|
||||
beforeEach(function() {
|
||||
xyzTileGrid = new ol.tilegrid.XYZ({
|
||||
maxZoom: 22
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getTileCoordChildTileRange()', function() {
|
||||
|
||||
it('returns the tile range for one zoom level deeper', function() {
|
||||
var range;
|
||||
|
||||
range = xyzTileGrid.getTileCoordChildTileRange([0, 0, 0]);
|
||||
expect(range.minX).to.be(0);
|
||||
expect(range.maxX).to.be(1);
|
||||
expect(range.minY).to.be(0);
|
||||
expect(range.maxY).to.be(1);
|
||||
|
||||
range = xyzTileGrid.getTileCoordChildTileRange([0, 1, 0]);
|
||||
expect(range.minX).to.be(2);
|
||||
expect(range.maxX).to.be(3);
|
||||
expect(range.minY).to.be(0);
|
||||
expect(range.maxY).to.be(1);
|
||||
|
||||
range = xyzTileGrid.getTileCoordChildTileRange([0, 0, 1]);
|
||||
expect(range.minX).to.be(0);
|
||||
expect(range.maxX).to.be(1);
|
||||
expect(range.minY).to.be(2);
|
||||
expect(range.maxY).to.be(3);
|
||||
|
||||
range = xyzTileGrid.getTileCoordChildTileRange([0, -1, 0]);
|
||||
expect(range.minX).to.be(-2);
|
||||
expect(range.maxX).to.be(-1);
|
||||
expect(range.minY).to.be(0);
|
||||
expect(range.maxY).to.be(1);
|
||||
|
||||
range = xyzTileGrid.getTileCoordChildTileRange([0, 0, -1]);
|
||||
expect(range.minX).to.be(0);
|
||||
expect(range.maxX).to.be(1);
|
||||
expect(range.minY).to.be(-2);
|
||||
expect(range.maxY).to.be(-1);
|
||||
});
|
||||
|
||||
it('returns null for z > maxZoom', function() {
|
||||
var max = xyzTileGrid.maxZoom;
|
||||
var range = xyzTileGrid.getTileCoordChildTileRange([max + 1, 0, 0]);
|
||||
expect(range).to.be(null);
|
||||
});
|
||||
|
||||
it('is like ol.tilegrid.TileGrid#getTileCoordChildTileRange()', function() {
|
||||
var superMethod = ol.tilegrid.TileGrid.prototype
|
||||
.getTileCoordChildTileRange.bind(xyzTileGrid);
|
||||
|
||||
var coord, selfRange, superRange;
|
||||
|
||||
coord = [0, 0, 0];
|
||||
selfRange = xyzTileGrid.getTileCoordChildTileRange(coord);
|
||||
superRange = superMethod(coord);
|
||||
expect(selfRange.minX).to.be(superRange.minX);
|
||||
expect(selfRange.maxX).to.be(superRange.maxX);
|
||||
expect(selfRange.minY).to.be(superRange.minY);
|
||||
expect(selfRange.maxY).to.be(superRange.maxY);
|
||||
|
||||
coord = [1, 2, 3];
|
||||
selfRange = xyzTileGrid.getTileCoordChildTileRange(coord);
|
||||
superRange = superMethod(coord);
|
||||
expect(selfRange.minX).to.be(superRange.minX);
|
||||
expect(selfRange.maxX).to.be(superRange.maxX);
|
||||
expect(selfRange.minY).to.be(superRange.minY);
|
||||
expect(selfRange.maxY).to.be(superRange.maxY);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('forEachTileCoordParentTileRange', function() {
|
||||
|
||||
it('iterates as expected', function() {
|
||||
|
||||
var tileCoord = [5, 11, 21];
|
||||
var zs = [], tileRanges = [];
|
||||
xyzTileGrid.forEachTileCoordParentTileRange(
|
||||
tileCoord,
|
||||
function(z, tileRange) {
|
||||
zs.push(z);
|
||||
tileRanges.push(new ol.TileRange(
|
||||
tileRange.minX, tileRange.maxX,
|
||||
tileRange.minY, tileRange.maxY));
|
||||
return false;
|
||||
});
|
||||
|
||||
expect(zs.length).to.eql(5);
|
||||
expect(tileRanges.length).to.eql(5);
|
||||
|
||||
expect(zs[0]).to.eql(4);
|
||||
expect(tileRanges[0].minX).to.eql(5);
|
||||
expect(tileRanges[0].maxX).to.eql(5);
|
||||
expect(tileRanges[0].minY).to.eql(10);
|
||||
expect(tileRanges[0].maxY).to.eql(10);
|
||||
|
||||
expect(zs[1]).to.eql(3);
|
||||
expect(tileRanges[1].minX).to.eql(2);
|
||||
expect(tileRanges[1].maxX).to.eql(2);
|
||||
expect(tileRanges[1].minY).to.eql(5);
|
||||
expect(tileRanges[1].maxY).to.eql(5);
|
||||
|
||||
expect(zs[2]).to.eql(2);
|
||||
expect(tileRanges[2].minX).to.eql(1);
|
||||
expect(tileRanges[2].maxX).to.eql(1);
|
||||
expect(tileRanges[2].minY).to.eql(2);
|
||||
expect(tileRanges[2].maxY).to.eql(2);
|
||||
|
||||
expect(zs[3]).to.eql(1);
|
||||
expect(tileRanges[3].minX).to.eql(0);
|
||||
expect(tileRanges[3].maxX).to.eql(0);
|
||||
expect(tileRanges[3].minY).to.eql(1);
|
||||
expect(tileRanges[3].maxY).to.eql(1);
|
||||
|
||||
expect(zs[4]).to.eql(0);
|
||||
expect(tileRanges[4].minX).to.eql(0);
|
||||
expect(tileRanges[4].maxX).to.eql(0);
|
||||
expect(tileRanges[4].minY).to.eql(0);
|
||||
expect(tileRanges[4].maxY).to.eql(0);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('getResolution', function() {
|
||||
|
||||
it('returns the correct resolution at the equator', function() {
|
||||
// @see http://msdn.microsoft.com/en-us/library/aa940990.aspx
|
||||
expect(xyzTileGrid.getResolution(0)).to.roughlyEqual(156543.04, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(1)).to.roughlyEqual(78271.52, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(2)).to.roughlyEqual(39135.76, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(3)).to.roughlyEqual(19567.88, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(4)).to.roughlyEqual(9783.94, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(5)).to.roughlyEqual(4891.97, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(6)).to.roughlyEqual(2445.98, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(7)).to.roughlyEqual(1222.99, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(8)).to.roughlyEqual(611.50, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(9)).to.roughlyEqual(305.75, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(10)).to.roughlyEqual(152.87, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(11)).to.roughlyEqual(76.44, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(12)).to.roughlyEqual(38.22, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(13)).to.roughlyEqual(19.11, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(14)).to.roughlyEqual(9.55, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(15)).to.roughlyEqual(4.78, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(16)).to.roughlyEqual(2.39, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(17)).to.roughlyEqual(1.19, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(18)).to.roughlyEqual(0.60, 1e-2);
|
||||
expect(xyzTileGrid.getResolution(19)).to.roughlyEqual(0.30, 1e-2);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
goog.require('ol.TileCoord');
|
||||
goog.require('ol.TileRange');
|
||||
goog.require('ol.tilegrid.TileGrid');
|
||||
goog.require('ol.tilegrid.XYZ');
|
||||
Reference in New Issue
Block a user