Add rendering test for 192x256 tiles

This commit is contained in:
Andreas Hocevar
2017-02-13 18:27:34 +01:00
parent b152f06973
commit 7037ca211d
7 changed files with 41 additions and 21 deletions

View File

@@ -3,6 +3,7 @@ goog.require('ol.View');
goog.require('ol.layer.Tile'); goog.require('ol.layer.Tile');
goog.require('ol.source.OSM'); goog.require('ol.source.OSM');
goog.require('ol.source.TileWMS'); goog.require('ol.source.TileWMS');
goog.require('ol.tilegrid');
var layers = [ var layers = [
@@ -14,7 +15,11 @@ var layers = [
source: new ol.source.TileWMS({ source: new ol.source.TileWMS({
url: 'https://ahocevar.com/geoserver/wms', url: 'https://ahocevar.com/geoserver/wms',
params: {'LAYERS': 'topp:states', 'TILED': true}, params: {'LAYERS': 'topp:states', 'TILED': true},
serverType: 'geoserver' serverType: 'geoserver',
tileGrid: ol.tilegrid.createXYZ({tileSize: [192, 256]}),
tileLoadFunction: function(tile, src) {
tile.getImage().src = src + '&tc=' + tile.getTileCoord().toString();
}
}) })
}) })
]; ];
@@ -23,6 +28,7 @@ var map = new ol.Map({
target: 'map', target: 'map',
view: new ol.View({ view: new ol.View({
center: [-10997148, 4569099], center: [-10997148, 4569099],
zoom: 4 zoom: 5,
resolutions: layers[1].getSource().getTileGrid().getResolutions()
}) })
}); });

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -12,14 +12,14 @@ goog.require('ol.source.XYZ');
goog.require('ol.style.Circle'); goog.require('ol.style.Circle');
goog.require('ol.style.Fill'); goog.require('ol.style.Fill');
goog.require('ol.style.Stroke'); goog.require('ol.style.Stroke');
goog.require('ol.tilegrid.TileGrid'); goog.require('ol.tilegrid');
describe('ol.rendering.layer.Tile', function() { describe('ol.rendering.layer.Tile', function() {
var target, map; var target, map;
function createMap(renderer, opt_center, opt_size, opt_pixelRatio) { function createMap(renderer, opt_center, opt_size, opt_pixelRatio, opt_resolutions) {
var size = opt_size !== undefined ? opt_size : [50, 50]; var size = opt_size !== undefined ? opt_size : [50, 50];
target = createMapDiv(size[0], size[1]); target = createMapDiv(size[0], size[1]);
@@ -30,6 +30,7 @@ describe('ol.rendering.layer.Tile', function() {
view: new ol.View({ view: new ol.View({
center: opt_center !== undefined ? opt_center : ol.proj.transform( center: opt_center !== undefined ? opt_center : ol.proj.transform(
[-122.416667, 37.783333], 'EPSG:4326', 'EPSG:3857'), [-122.416667, 37.783333], 'EPSG:4326', 'EPSG:3857'),
resolutions: opt_resolutions,
zoom: 5 zoom: 5
}) })
}); });
@@ -205,30 +206,22 @@ describe('ol.rendering.layer.Tile', function() {
}); });
describe('tile layer with non-square tiles', function() { describe('tile layer with non-square tiles', function() {
var source;
beforeEach(function() { function createSource(tileSize) {
source = new ol.source.TileImage({ return new ol.source.TileImage({
tileUrlFunction: function(tileCoord, ratio, projection) { url: 'spec/ol/data/tiles/' + tileSize + '/{z}/{x}/{y}.png',
return 'spec/ol/data/tiles/512x256/' + tileCoord[0] + '/' + tileGrid: ol.tilegrid.createXYZ({
tileCoord[1] + '/' + tileCoord[2] + '.png'; tileSize: tileSize.split('x')
},
tileGrid: new ol.tilegrid.TileGrid({
origin: [-20037508.342789244, -20037508.342789244],
resolutions: [
156543.03392804097, 78271.51696402048, 39135.75848201024,
19567.87924100512, 9783.93962050256, 4891.96981025128
],
tileSize: [512, 256]
}) })
}); });
}); }
afterEach(function() { afterEach(function() {
disposeMap(map); disposeMap(map);
}); });
it('renders correcly using the canvas renderer', function(done) { it('512x256 renders correcly using the canvas renderer', function(done) {
var source = createSource('512x256');
map = createMap('canvas', [-10997148, 4569099]); map = createMap('canvas', [-10997148, 4569099]);
waitForTiles([source], {}, function() { waitForTiles([source], {}, function() {
expectResemble(map, 'spec/ol/layer/expected/512x256-canvas.png', expectResemble(map, 'spec/ol/layer/expected/512x256-canvas.png',
@@ -236,8 +229,9 @@ describe('ol.rendering.layer.Tile', function() {
}); });
}); });
it('renders correcly using the webgl renderer', function(done) { it('512x256 renders correcly using the webgl renderer', function(done) {
assertWebGL(); assertWebGL();
var source = createSource('512x256');
map = createMap('webgl', [-10997148, 4569099]); map = createMap('webgl', [-10997148, 4569099]);
waitForTiles([source], {}, function() { waitForTiles([source], {}, function() {
expectResemble(map, 'spec/ol/layer/expected/512x256-webgl.png', expectResemble(map, 'spec/ol/layer/expected/512x256-webgl.png',
@@ -245,6 +239,26 @@ describe('ol.rendering.layer.Tile', function() {
}); });
}); });
it('192x256 renders correcly using the canvas renderer', function(done) {
var source = createSource('192x256');
map = createMap('canvas', [-11271098, 3747248], [100, 100], undefined,
source.getTileGrid().getResolutions());
waitForTiles([source], {}, function() {
expectResemble(map, 'spec/ol/layer/expected/192x256-canvas.png',
IMAGE_TOLERANCE, done);
});
});
it('192x256 renders correcly using the webgl renderer', function(done) {
assertWebGL();
var source = createSource('192x256');
map = createMap('webgl', [-11271098, 3747248], [100, 100], undefined,
source.getTileGrid().getResolutions());
waitForTiles([source], {}, function() {
expectResemble(map, 'spec/ol/layer/expected/192x256-webgl.png',
IMAGE_TOLERANCE, done);
});
});
}); });
describe('tile layer with render listener', function() { describe('tile layer with render listener', function() {