goog.provide('ol.source.Stamen'); goog.require('ol'); goog.require('ol.Attribution'); 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 */ ol.source.Stamen = function(options) { var i = options.layer.indexOf('-'); var provider = i == -1 ? options.layer : options.layer.slice(0, i); var providerConfig = ol.source.Stamen.ProviderConfig[provider]; 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, wrapX: options.wrapX }); }; ol.inherits(ol.source.Stamen, ol.source.XYZ); /** * @const * @type {Array.