From ec00cd32225ad44ed286e3d3bbeca995b7c4d74e Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Thu, 4 Sep 2014 11:59:43 -0600 Subject: [PATCH] Make tileSize a config option for ol.source.XYZ --- externs/olx.js | 9 +++++++++ src/ol/source/xyzsource.js | 3 ++- test/spec/ol/source/xyzsource.test.js | 11 +++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/externs/olx.js b/externs/olx.js index 91af55cc09..056f68e92a 100644 --- a/externs/olx.js +++ b/externs/olx.js @@ -5053,6 +5053,7 @@ olx.source.WMTSOptions.prototype.urls; * minZoom: (number|undefined), * tileLoadFunction: (ol.TileLoadFunctionType|undefined), * tilePixelRatio: (number|undefined), + * tileSize: (number|undefined), * tileUrlFunction: (ol.TileUrlFunctionType|undefined), * url: (string|undefined), * urls: (Array.|undefined), @@ -5129,6 +5130,14 @@ olx.source.XYZOptions.prototype.tileLoadFunction; olx.source.XYZOptions.prototype.tilePixelRatio; +/** + * The tile size used by the tile service. Default is `256` pixels. + * @type {number|undefined} + * @api + */ +olx.source.XYZOptions.prototype.tileSize; + + /** * Optional function to get tile URL given a tile coordinate and the projection. * Required if url or urls are not provided. diff --git a/src/ol/source/xyzsource.js b/src/ol/source/xyzsource.js index 105c1c379c..1b5d2ec2d9 100644 --- a/src/ol/source/xyzsource.js +++ b/src/ol/source/xyzsource.js @@ -22,7 +22,8 @@ ol.source.XYZ = function(options) { var tileGrid = new ol.tilegrid.XYZ({ extent: ol.tilegrid.extentFromProjection(projection), - maxZoom: options.maxZoom + maxZoom: options.maxZoom, + tileSize: options.tileSize }); goog.base(this, { diff --git a/test/spec/ol/source/xyzsource.test.js b/test/spec/ol/source/xyzsource.test.js index b72cc7c475..1a9ed0c1b2 100644 --- a/test/spec/ol/source/xyzsource.test.js +++ b/test/spec/ol/source/xyzsource.test.js @@ -3,6 +3,17 @@ goog.provide('ol.test.source.XYZ'); describe('ol.source.XYZ', function() { + describe('constructor', function() { + + it('can be constructed with a custom tile size', function() { + var tileSource = new ol.source.XYZ({ + tileSize: 512 + }); + expect(tileSource.getTileGrid().getTileSize(0)).to.be(512); + }); + + }); + describe('tileUrlFunction', function() { var xyzTileSource, tileGrid;