From fb668a7fc65104bca447455958ece5e71a4e36f9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 19 Feb 2013 16:50:48 +0100 Subject: [PATCH] Add opaque flag to ol.source.TileSource --- src/objectliterals.exports | 1 + src/ol/source/bingmapssource.js | 1 + src/ol/source/debugtilesource.js | 1 + src/ol/source/imagetilesource.js | 2 ++ src/ol/source/mapquestsource.js | 2 ++ src/ol/source/openstreetmapsource.js | 1 + src/ol/source/stamensource.js | 1 + src/ol/source/tiledwmssource.js | 6 +++++- src/ol/source/tilesource.js | 16 ++++++++++++++++ 9 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.exports b/src/objectliterals.exports index 1abc752745..d4146838ae 100644 --- a/src/objectliterals.exports +++ b/src/objectliterals.exports @@ -133,6 +133,7 @@ @exportObjectLiteralProperty ol.source.TiledWMSOptions.crossOrigin null|string|undefined @exportObjectLiteralProperty ol.source.TiledWMSOptions.extent ol.Extent|undefined @exportObjectLiteralProperty ol.source.TiledWMSOptions.tileGrid ol.tilegrid.TileGrid|undefined +@exportObjectLiteralProperty ol.source.TiledWMSOptions.transparent boolean|undefined @exportObjectLiteralProperty ol.source.TiledWMSOptions.maxZoom number|undefined @exportObjectLiteralProperty ol.source.TiledWMSOptions.projection ol.Projection|undefined @exportObjectLiteralProperty ol.source.TiledWMSOptions.url string|undefined diff --git a/src/ol/source/bingmapssource.js b/src/ol/source/bingmapssource.js index 1e5355904c..729870b814 100644 --- a/src/ol/source/bingmapssource.js +++ b/src/ol/source/bingmapssource.js @@ -36,6 +36,7 @@ ol.BingMapsStyle = { ol.source.BingMaps = function(bingMapsOptions) { goog.base(this, { + opaque: true, projection: ol.projection.getFromCode('EPSG:3857') }); diff --git a/src/ol/source/debugtilesource.js b/src/ol/source/debugtilesource.js index e553081ae3..d9ab21ad80 100644 --- a/src/ol/source/debugtilesource.js +++ b/src/ol/source/debugtilesource.js @@ -90,6 +90,7 @@ ol.source.DebugTileSource = function(options) { goog.base(this, { extent: options.extent, + opaque: false, projection: options.projection, tileGrid: options.tileGrid }); diff --git a/src/ol/source/imagetilesource.js b/src/ol/source/imagetilesource.js index d47b9215e5..b29849a4a6 100644 --- a/src/ol/source/imagetilesource.js +++ b/src/ol/source/imagetilesource.js @@ -18,6 +18,7 @@ goog.require('ol.tilegrid.TileGrid'); * @typedef {{attributions: (Array.|undefined), * crossOrigin: (null|string|undefined), * extent: (ol.Extent|undefined), + * opaque: (boolean|undefined), * projection: (ol.Projection|undefined), * tileGrid: (ol.tilegrid.TileGrid|undefined), * tileUrlFunction: (ol.TileUrlFunctionType|undefined)}} @@ -36,6 +37,7 @@ ol.source.ImageTileSource = function(options) { goog.base(this, { attributions: options.attributions, extent: options.extent, + opaque: options.opaque, projection: options.projection, tileGrid: options.tileGrid }); diff --git a/src/ol/source/mapquestsource.js b/src/ol/source/mapquestsource.js index 08fb316632..ae12b33a25 100644 --- a/src/ol/source/mapquestsource.js +++ b/src/ol/source/mapquestsource.js @@ -26,6 +26,7 @@ ol.source.MapQuestOSM = function() { goog.base(this, { attributions: attributions, + opaque: true, maxZoom: 28, url: 'http://otile{1-4}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg' }); @@ -54,6 +55,7 @@ ol.source.MapQuestOpenAerial = function() { goog.base(this, { attributions: attributions, maxZoom: 18, + opaque: true, url: 'http://oatile{1-4}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg' }); diff --git a/src/ol/source/openstreetmapsource.js b/src/ol/source/openstreetmapsource.js index 8bbfaf5742..258fe22637 100644 --- a/src/ol/source/openstreetmapsource.js +++ b/src/ol/source/openstreetmapsource.js @@ -18,6 +18,7 @@ ol.source.OpenStreetMap = function() { goog.base(this, { attributions: [attribution], + opaque: true, maxZoom: 18, url: 'http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png' }); diff --git a/src/ol/source/stamensource.js b/src/ol/source/stamensource.js index 46f87d83df..90355bf1e5 100644 --- a/src/ol/source/stamensource.js +++ b/src/ol/source/stamensource.js @@ -85,6 +85,7 @@ ol.source.Stamen = function(stamenOptions) { goog.base(this, { attributions: [attribution], maxZoom: config.maxZoom, + opaque: false, url: 'http://{a-d}.tile.stamen.com/' + layer + '/{z}/{x}/{y}.' + config.type }); diff --git a/src/ol/source/tiledwmssource.js b/src/ol/source/tiledwmssource.js index 9c7eb5ec8c..998cff4b43 100644 --- a/src/ol/source/tiledwmssource.js +++ b/src/ol/source/tiledwmssource.js @@ -27,6 +27,9 @@ ol.source.TiledWMS = function(tiledWMSOptions) { var extent = goog.isDef(tiledWMSOptions.extent) ? tiledWMSOptions.extent : projectionExtent; + var transparent = goog.isDef(tiledWMSOptions.transparent) ? + tiledWMSOptions.transparent : true; + var version = goog.isDef(tiledWMSOptions.version) ? tiledWMSOptions.version : '1.3'; @@ -44,7 +47,7 @@ ol.source.TiledWMS = function(tiledWMSOptions) { 'REQUEST': 'GetMap', 'STYLES': '', 'FORMAT': 'image/png', - 'TRANSPARENT': true + 'TRANSPARENT': transparent }; baseParams[version >= '1.3' ? 'CRS' : 'SRS'] = projection.getCode(); goog.object.extend(baseParams, tiledWMSOptions.params); @@ -97,6 +100,7 @@ ol.source.TiledWMS = function(tiledWMSOptions) { crossOrigin: tiledWMSOptions.crossOrigin, extent: extent, tileGrid: tileGrid, + opaque: !transparent, projection: projection, tileUrlFunction: ol.TileUrlFunction.withTileCoordTransform( tileCoordTransform, tileUrlFunction) diff --git a/src/ol/source/tilesource.js b/src/ol/source/tilesource.js index c250951e7e..cb3a5a5133 100644 --- a/src/ol/source/tilesource.js +++ b/src/ol/source/tilesource.js @@ -15,6 +15,7 @@ goog.require('ol.tilegrid.TileGrid'); /** * @typedef {{attributions: (Array.|undefined), * extent: (ol.Extent|undefined), + * opaque: (boolean|undefined), * projection: (ol.Projection|undefined), * tileGrid: (ol.tilegrid.TileGrid|undefined)}} */ @@ -35,6 +36,13 @@ ol.source.TileSource = function(tileSourceOptions) { projection: tileSourceOptions.projection }); + /** + * @private + * @type {boolean} + */ + this.opaque_ = goog.isDef(tileSourceOptions.opaque) ? + tileSourceOptions.opaque : false; + /** * @protected * @type {ol.tilegrid.TileGrid} @@ -98,6 +106,14 @@ ol.source.TileSource.prototype.findLoadedTiles = function(loadedTilesByZ, }; +/** + * @return {boolean} Opaque. + */ +ol.source.TileSource.prototype.getOpaque = function() { + return this.opaque_; +}; + + /** * @inheritDoc */