From e79211e0c115b1e188878d752c6ebae39266149e Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Wed, 11 Feb 2015 10:15:29 -0700 Subject: [PATCH] Respect attributions passed to TileJSON source --- externs/olx.js | 13 ++++++++++++- src/ol/source/tilejsonsource.js | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/externs/olx.js b/externs/olx.js index c00a799af6..0b9924c79b 100644 --- a/externs/olx.js +++ b/externs/olx.js @@ -4980,7 +4980,8 @@ olx.source.ServerVectorOptions.prototype.projection; /** - * @typedef {{crossOrigin: (null|string|undefined), + * @typedef {{attributions: (Array.|undefined), + * crossOrigin: (null|string|undefined), * tileLoadFunction: (ol.TileLoadFunctionType|undefined), * url: string, * wrapX: (boolean|undefined)}} @@ -4989,6 +4990,16 @@ olx.source.ServerVectorOptions.prototype.projection; olx.source.TileJSONOptions; +/** + * Optional attributions for the source. If provided, these will be used + * instead of any attribution data advertised by the server. If not provided, + * any attributions advertised by the server will be used. + * @type {Array.|undefined} + * @api stable + */ +olx.source.TileJSONOptions.prototype.attributions; + + /** * The `crossOrigin` attribute for loaded images. Note that you must provide a * `crossOrigin` value if you are using the WebGL renderer or if you want to diff --git a/src/ol/source/tilejsonsource.js b/src/ol/source/tilejsonsource.js index 92982e18fc..4246908224 100644 --- a/src/ol/source/tilejsonsource.js +++ b/src/ol/source/tilejsonsource.js @@ -33,6 +33,7 @@ goog.require('ol.tilegrid.XYZ'); ol.source.TileJSON = function(options) { goog.base(this, { + attributions: options.attributions, crossOrigin: options.crossOrigin, projection: ol.proj.get('EPSG:3857'), state: ol.source.State.LOADING, @@ -87,7 +88,8 @@ ol.source.TileJSON.prototype.handleTileJSONResponse = function(tileJSON) { }), ol.TileUrlFunction.createFromTemplates(tileJSON.tiles)); - if (goog.isDef(tileJSON.attribution)) { + if (goog.isDef(tileJSON.attribution) && + goog.isNull(this.getAttributions())) { var attributionExtent = goog.isDef(extent) ? extent : epsg4326Projection.getExtent(); /** @type {Object.>} */