Files
openlayers/src/ol/tile/xyz_test.js
2012-07-22 12:17:06 +02:00

76 lines
2.0 KiB
JavaScript

goog.require('goog.testing.jsunit');
goog.require('ol.Coordinate');
goog.require('ol.TileCoord');
goog.require('ol.tilestore.createXYZ');
function testXYZ() {
var tileStore = ol.tilestore.createXYZ(6, ['{z}/{x}/{y}']);
var tileGrid = tileStore.getTileGrid();
var coordinate = new ol.Coordinate(829330.2064098881, 5933916.615134273);
var tileUrl;
tileUrl = tileStore.getTileCoordUrl(
tileGrid.getTileCoordForCoordAndZ(coordinate, 0));
assertEquals('0/0/0', tileUrl);
tileUrl = tileStore.getTileCoordUrl(
tileGrid.getTileCoordForCoordAndZ(coordinate, 1));
assertEquals('1/1/0', tileUrl);
tileUrl = tileStore.getTileCoordUrl(
tileGrid.getTileCoordForCoordAndZ(coordinate, 2));
assertEquals('2/2/1', tileUrl);
tileUrl = tileStore.getTileCoordUrl(
tileGrid.getTileCoordForCoordAndZ(coordinate, 3));
assertEquals('3/4/2', tileUrl);
tileUrl = tileStore.getTileCoordUrl(
tileGrid.getTileCoordForCoordAndZ(coordinate, 4));
assertEquals('4/8/5', tileUrl);
tileUrl = tileStore.getTileCoordUrl(
tileGrid.getTileCoordForCoordAndZ(coordinate, 5));
assertEquals('5/16/11', tileUrl);
tileUrl = tileStore.getTileCoordUrl(
tileGrid.getTileCoordForCoordAndZ(coordinate, 6));
assertEquals('6/33/22', tileUrl);
}
function testXYZWrapX() {
var tileStore = ol.tilestore.createXYZ(6, ['{z}/{x}/{y}']);
tileUrl = tileStore.getTileCoordUrl(new ol.TileCoord(6, -31, -23));
assertEquals('6/33/22', tileUrl);
tileUrl = tileStore.getTileCoordUrl(new ol.TileCoord(6, 33, -23));
assertEquals('6/33/22', tileUrl);
tileUrl = tileStore.getTileCoordUrl(new ol.TileCoord(6, 97, -23));
assertEquals('6/33/22', tileUrl);
}
function testXYZCropY() {
var tileStore = ol.tilestore.createXYZ(6, ['{z}/{x}/{y}']);
tileUrl = tileStore.getTileCoordUrl(new ol.TileCoord(6, 33, -87));
assertUndefined(tileUrl);
tileUrl = tileStore.getTileCoordUrl(new ol.TileCoord(6, 33, -23));
assertEquals('6/33/22', tileUrl);
tileUrl = tileStore.getTileCoordUrl(new ol.TileCoord(6, 33, 41));
assertUndefined(tileUrl);
}