Merge pull request #3559 from ahocevar/tile-width-height
Add support for non-square tiles
This commit is contained in:
65
test/spec/ol/size.test.js
Normal file
65
test/spec/ol/size.test.js
Normal file
@@ -0,0 +1,65 @@
|
||||
goog.provide('ol.test.size');
|
||||
|
||||
|
||||
describe('ol.size', function() {
|
||||
|
||||
describe('#buffer()', function() {
|
||||
|
||||
it('buffers a size', function() {
|
||||
var size = [50, 75];
|
||||
var bufferedSize = ol.size.buffer(size, 20);
|
||||
expect(bufferedSize).to.eql([90, 115]);
|
||||
});
|
||||
|
||||
it('reuses an existing array', function() {
|
||||
var reuse = [0, 0];
|
||||
var size = [50, 50];
|
||||
var bufferedSize = ol.size.buffer(size, 20, reuse);
|
||||
expect(bufferedSize).to.equal(reuse);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('#scale()', function() {
|
||||
|
||||
it('scales a size and rounds the result', function() {
|
||||
var size = [50, 75];
|
||||
var scaledSize = ol.size.scale(size, 1.75);
|
||||
expect(scaledSize).to.eql([88, 131]);
|
||||
});
|
||||
|
||||
it('reuses an existing array', function() {
|
||||
var reuse = [0, 0];
|
||||
var size = [50, 50];
|
||||
var scaledSize = ol.size.scale(size, 1.75, reuse);
|
||||
expect(scaledSize).to.equal(reuse);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('#toSize()', function() {
|
||||
|
||||
it('creates a size array from a number', function() {
|
||||
var size = ol.size.toSize(512);
|
||||
expect(size).to.eql([512, 512]);
|
||||
});
|
||||
|
||||
it('reuses an existing array', function() {
|
||||
var sizeArray = [0, 0];
|
||||
var size = ol.size.toSize(512, sizeArray);
|
||||
expect(size).to.equal(sizeArray);
|
||||
});
|
||||
|
||||
it('returns a size array unaltered', function() {
|
||||
var sizeArray = [512, 256];
|
||||
var size = ol.size.toSize(sizeArray);
|
||||
expect(size).to.equal(sizeArray);
|
||||
size = ol.size.toSize(sizeArray, [0, 0]);
|
||||
expect(size).to.equal(sizeArray);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
goog.require('ol.size');
|
||||
@@ -129,6 +129,21 @@ describe('ol.source.TileWMS', function() {
|
||||
expect(queryData.get('BBOX')).to.be('-45,-45,0,0');
|
||||
});
|
||||
|
||||
it('works with non-square tiles', function() {
|
||||
options.tileGrid = new ol.tilegrid.TileGrid({
|
||||
tileSize: [640, 320],
|
||||
resolutions: [1.40625, 0.703125, 0.3515625, 0.17578125],
|
||||
origin: [-180, -90]
|
||||
});
|
||||
var source = new ol.source.TileWMS(options);
|
||||
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();
|
||||
expect(queryData.get('WIDTH')).to.be('640');
|
||||
expect(queryData.get('HEIGHT')).to.be('320');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('#getGetFeatureInfo', function() {
|
||||
@@ -205,3 +220,4 @@ goog.require('goog.Uri');
|
||||
goog.require('ol.ImageTile');
|
||||
goog.require('ol.source.TileWMS');
|
||||
goog.require('ol.proj');
|
||||
goog.require('ol.tilegrid.TileGrid');
|
||||
|
||||
Reference in New Issue
Block a user