diff --git a/src/ol/source/stamen.js b/src/ol/source/stamen.js
index c1640f0dfc..59a1bbc319 100644
--- a/src/ol/source/stamen.js
+++ b/src/ol/source/stamen.js
@@ -6,10 +6,64 @@ goog.require('ol.source.OSM');
goog.require('ol.source.XYZ');
+/**
+ * @classdesc
+ * Layer source for the Stamen tile server.
+ *
+ * @constructor
+ * @extends {ol.source.XYZ}
+ * @param {olx.source.StamenOptions} options Stamen options.
+ * @api stable
+ */
+ol.source.Stamen = function(options) {
+
+ var i = options.layer.indexOf('-');
+ var provider = i == -1 ? options.layer : options.layer.slice(0, i);
+ ol.DEBUG && console.assert(provider in ol.source.Stamen.ProviderConfig,
+ 'known provider configured');
+ var providerConfig = ol.source.Stamen.ProviderConfig[provider];
+
+ ol.DEBUG && console.assert(options.layer in ol.source.Stamen.LayerConfig,
+ 'known layer configured');
+ var layerConfig = ol.source.Stamen.LayerConfig[options.layer];
+
+ var url = options.url !== undefined ? options.url :
+ 'https://stamen-tiles-{a-d}.a.ssl.fastly.net/' + options.layer +
+ '/{z}/{x}/{y}.' + layerConfig.extension;
+
+ ol.source.XYZ.call(this, {
+ attributions: ol.source.Stamen.ATTRIBUTIONS,
+ cacheSize: options.cacheSize,
+ crossOrigin: 'anonymous',
+ maxZoom: options.maxZoom != undefined ? options.maxZoom : providerConfig.maxZoom,
+ minZoom: options.minZoom != undefined ? options.minZoom : providerConfig.minZoom,
+ opaque: layerConfig.opaque,
+ reprojectionErrorThreshold: options.reprojectionErrorThreshold,
+ tileLoadFunction: options.tileLoadFunction,
+ url: url
+ });
+
+};
+ol.inherits(ol.source.Stamen, ol.source.XYZ);
+
+
+/**
+ * @const
+ * @type {Array.
}
+ */
+ol.source.Stamen.ATTRIBUTIONS = [
+ new ol.Attribution({
+ html: 'Map tiles by Stamen Design, ' +
+ 'under CC BY' +
+ ' 3.0.'
+ }),
+ ol.source.OSM.ATTRIBUTION
+];
+
/**
* @type {Object.}
*/
-ol.source.StamenLayerConfig = {
+ol.source.Stamen.LayerConfig = {
'terrain': {
extension: 'jpg',
opaque: true
@@ -56,11 +110,10 @@ ol.source.StamenLayerConfig = {
}
};
-
/**
* @type {Object.}
*/
-ol.source.StamenProviderConfig = {
+ol.source.Stamen.ProviderConfig = {
'terrain': {
minZoom: 4,
maxZoom: 18
@@ -74,58 +127,3 @@ ol.source.StamenProviderConfig = {
maxZoom: 16
}
};
-
-
-/**
- * @classdesc
- * Layer source for the Stamen tile server.
- *
- * @constructor
- * @extends {ol.source.XYZ}
- * @param {olx.source.StamenOptions} options Stamen options.
- * @api stable
- */
-ol.source.Stamen = function(options) {
-
- var i = options.layer.indexOf('-');
- var provider = i == -1 ? options.layer : options.layer.slice(0, i);
- ol.DEBUG && console.assert(provider in ol.source.StamenProviderConfig,
- 'known provider configured');
- var providerConfig = ol.source.StamenProviderConfig[provider];
-
- ol.DEBUG && console.assert(options.layer in ol.source.StamenLayerConfig,
- 'known layer configured');
- var layerConfig = ol.source.StamenLayerConfig[options.layer];
-
- var url = options.url !== undefined ? options.url :
- 'https://stamen-tiles-{a-d}.a.ssl.fastly.net/' + options.layer +
- '/{z}/{x}/{y}.' + layerConfig.extension;
-
- ol.source.XYZ.call(this, {
- attributions: ol.source.Stamen.ATTRIBUTIONS,
- cacheSize: options.cacheSize,
- crossOrigin: 'anonymous',
- maxZoom: options.maxZoom != undefined ? options.maxZoom : providerConfig.maxZoom,
- minZoom: options.minZoom != undefined ? options.minZoom : providerConfig.minZoom,
- opaque: layerConfig.opaque,
- reprojectionErrorThreshold: options.reprojectionErrorThreshold,
- tileLoadFunction: options.tileLoadFunction,
- url: url
- });
-
-};
-ol.inherits(ol.source.Stamen, ol.source.XYZ);
-
-
-/**
- * @const
- * @type {Array.}
- */
-ol.source.Stamen.ATTRIBUTIONS = [
- new ol.Attribution({
- html: 'Map tiles by Stamen Design, ' +
- 'under CC BY' +
- ' 3.0.'
- }),
- ol.source.OSM.ATTRIBUTION
-];