Merge pull request #3826 from klokantech/xyzsource-tilegrid

Allow custom tileGrid in ol.source.XYZ
This commit is contained in:
Andreas Hocevar
2015-06-20 10:25:28 +02:00
3 changed files with 23 additions and 5 deletions

View File

@@ -5358,6 +5358,7 @@ olx.source.WMTSOptions.prototype.wrapX;
* projection: ol.proj.ProjectionLike,
* maxZoom: (number|undefined),
* minZoom: (number|undefined),
* tileGrid: (ol.tilegrid.TileGrid|undefined),
* tileLoadFunction: (ol.TileLoadFunctionType|undefined),
* tilePixelRatio: (number|undefined),
* tileSize: (number|ol.Size|undefined),
@@ -5422,6 +5423,14 @@ olx.source.XYZOptions.prototype.maxZoom;
olx.source.XYZOptions.prototype.minZoom;
/**
* Tile grid.
* @type {ol.tilegrid.TileGrid}
* @api
*/
olx.source.XYZOptions.prototype.tileGrid;
/**
* Optional function to load a tile given a URL.
* @type {ol.TileLoadFunctionType|undefined}

View File

@@ -19,11 +19,12 @@ ol.source.XYZ = function(options) {
var projection = goog.isDef(options.projection) ?
options.projection : 'EPSG:3857';
var tileGrid = ol.tilegrid.createXYZ({
extent: ol.tilegrid.extentFromProjection(projection),
maxZoom: options.maxZoom,
tileSize: options.tileSize
});
var tileGrid = goog.isDef(options.tileGrid) ? options.tileGrid :
ol.tilegrid.createXYZ({
extent: ol.tilegrid.extentFromProjection(projection),
maxZoom: options.maxZoom,
tileSize: options.tileSize
});
goog.base(this, {
attributions: options.attributions,

View File

@@ -5,6 +5,14 @@ describe('ol.source.XYZ', function() {
describe('constructor', function() {
it('can be constructed with a custom tile grid', function() {
var tileGrid = ol.tilegrid.createXYZ();
var tileSource = new ol.source.XYZ({
tileGrid: tileGrid
});
expect(tileSource.getTileGrid()).to.be(tileGrid);
});
it('can be constructed with a custom tile size', function() {
var tileSource = new ol.source.XYZ({
tileSize: 512