From 08735e30fff83a51857b7af3f926bab939a92e2e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 28 Jul 2012 01:13:38 +0200 Subject: [PATCH] Make attributions an array of strings rather than a string --- src/ol/base/store.js | 6 +++--- src/ol/tile/openstreetmap.js | 19 +++++++------------ src/ol/tile/xyz.js | 21 ++++++++++++++++++--- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/ol/base/store.js b/src/ol/base/store.js index e92da71022..2a617bfbb6 100644 --- a/src/ol/base/store.js +++ b/src/ol/base/store.js @@ -31,10 +31,10 @@ ol.Store = function(projection, opt_extent) { /** * @param {ol.Extent} extent Extent. * @param {number} resolution Resolution. - * @return {string|undefined} Attribution. + * @return {Array.} Attributions. */ -ol.Store.prototype.getAttribution = function(extent, resolution) { - return undefined; +ol.Store.prototype.getAttributions = function(extent, resolution) { + return []; }; diff --git a/src/ol/tile/openstreetmap.js b/src/ol/tile/openstreetmap.js index 17cc4bd427..830af9cae8 100644 --- a/src/ol/tile/openstreetmap.js +++ b/src/ol/tile/openstreetmap.js @@ -25,21 +25,16 @@ goog.inherits(ol.layer.OpenStreetMap, ol.TileLayer); * @extends {ol.tilestore.XYZ} */ ol.store.OpenStreetMap = function() { + goog.base(this, 18, ol.TileUrlFunction.createFromTemplates([ 'http://a.tile.openstreetmap.org/{z}/{x}/{y}.png', 'http://b.tile.openstreetmap.org/{z}/{x}/{y}.png', 'http://c.tile.openstreetmap.org/{z}/{x}/{y}.png' - ])); + ]), [ + '© OpenStreetMap ' + + 'contributors, ' + + 'CC BY-SA' + ]); + }; goog.inherits(ol.store.OpenStreetMap, ol.tilestore.XYZ); - - -/** - * @inheritDoc - */ -ol.store.OpenStreetMap.prototype.getAttribution = - function(extent, resolution) { - return '© OpenStreetMap ' + - 'contributors, ' + - 'CC BY-SA'; -}; diff --git a/src/ol/tile/xyz.js b/src/ol/tile/xyz.js index 04e9919c71..2887fa354b 100644 --- a/src/ol/tile/xyz.js +++ b/src/ol/tile/xyz.js @@ -50,7 +50,7 @@ goog.inherits(ol.tilegrid.XYZ, ol.TileGrid); */ ol.layer.XYZ = function(maxZoom, tileUrlFunction, opt_crossOrigin, opt_values) { var tileStore = new ol.tilestore.XYZ( - maxZoom, tileUrlFunction, opt_crossOrigin); + maxZoom, tileUrlFunction, undefined, opt_crossOrigin); goog.base(this, tileStore, opt_values); }; goog.inherits(ol.layer.XYZ, ol.TileLayer); @@ -62,11 +62,11 @@ goog.inherits(ol.layer.XYZ, ol.TileLayer); * @extends {ol.TileStore} * @param {number} maxZoom Maximum zoom. * @param {ol.TileUrlFunctionType} tileUrlFunction Tile URL function. - * @param {string=} opt_attribution Attribution. + * @param {Array.=} opt_attributions Attributions. * @param {string=} opt_crossOrigin Cross origin. */ ol.tilestore.XYZ = - function(maxZoom, tileUrlFunction, opt_attribution, opt_crossOrigin) { + function(maxZoom, tileUrlFunction, opt_attributions, opt_crossOrigin) { var projection = ol.Projection.getFromCode('EPSG:3857'); var tileGrid = new ol.tilegrid.XYZ(maxZoom); @@ -87,5 +87,20 @@ ol.tilestore.XYZ = goog.base( this, projection, tileGrid, tileUrlFunction2, extent, opt_crossOrigin); + + /** + * @private + * @type {Array.} + */ + this.attributions_ = goog.isDef(opt_attributions) ? opt_attributions : []; + }; goog.inherits(ol.tilestore.XYZ, ol.TileStore); + + +/** + * @inheritDoc + */ +ol.tilestore.XYZ.prototype.getAttributions = function(extent, resolution) { + return this.attributions_; +};