diff --git a/examples/reprojection.js b/examples/reprojection.js index ca57e6e115..20ba191795 100644 --- a/examples/reprojection.js +++ b/examples/reprojection.js @@ -8,7 +8,7 @@ import {register} from '../src/ol/proj/proj4.js'; import OSM from '../src/ol/source/OSM.js'; import TileImage from '../src/ol/source/TileImage.js'; import TileWMS from '../src/ol/source/TileWMS.js'; -import WMTS from '../src/ol/source/WMTS.js'; +import WMTS, {optionsFromCapabilities} from '../src/ol/source/WMTS.js'; import XYZ from '../src/ol/source/XYZ.js'; import TileGrid from '../src/ol/tilegrid/TileGrid.js'; import proj4 from 'proj4'; @@ -104,7 +104,7 @@ fetch(url).then(function(response) { return response.text(); }).then(function(text) { const result = parser.read(text); - const options = WMTS.optionsFromCapabilities(result, { + const options = optionsFromCapabilities(result, { layer: 'OSM_Land_Mask', matrixSet: 'EPSG3413_250m' }); diff --git a/examples/wmts-hidpi.js b/examples/wmts-hidpi.js index 27255c8110..4371df9458 100644 --- a/examples/wmts-hidpi.js +++ b/examples/wmts-hidpi.js @@ -3,7 +3,7 @@ import View from '../src/ol/View.js'; import WMTSCapabilities from '../src/ol/format/WMTSCapabilities.js'; import {DEVICE_PIXEL_RATIO} from '../src/ol/has.js'; import TileLayer from '../src/ol/layer/Tile.js'; -import WMTS from '../src/ol/source/WMTS.js'; +import WMTS, {optionsFromCapabilities} from '../src/ol/source/WMTS.js'; const capabilitiesUrl = 'https://www.basemap.at/wmts/1.0.0/WMTSCapabilities.xml'; @@ -27,7 +27,7 @@ fetch(capabilitiesUrl).then(function(response) { return response.text(); }).then(function(text) { const result = new WMTSCapabilities().read(text); - const options = WMTS.optionsFromCapabilities(result, { + const options = optionsFromCapabilities(result, { layer: layer, matrixSet: 'google3857', style: 'normal' diff --git a/examples/wmts-layer-from-capabilities.js b/examples/wmts-layer-from-capabilities.js index 49924110bd..d7c4cfa48f 100644 --- a/examples/wmts-layer-from-capabilities.js +++ b/examples/wmts-layer-from-capabilities.js @@ -3,7 +3,7 @@ import View from '../src/ol/View.js'; import WMTSCapabilities from '../src/ol/format/WMTSCapabilities.js'; import TileLayer from '../src/ol/layer/Tile.js'; import OSM from '../src/ol/source/OSM.js'; -import WMTS from '../src/ol/source/WMTS.js'; +import WMTS, {optionsFromCapabilities} from '../src/ol/source/WMTS.js'; const parser = new WMTSCapabilities(); let map; @@ -12,7 +12,7 @@ fetch('data/WMTSCapabilities.xml').then(function(response) { return response.text(); }).then(function(text) { const result = parser.read(text); - const options = WMTS.optionsFromCapabilities(result, { + const options = optionsFromCapabilities(result, { layer: 'layer-7328', matrixSet: 'EPSG:3857' }); diff --git a/src/ol/source/WMTS.js b/src/ol/source/WMTS.js index a95f994c74..8f2d2e7ffb 100644 --- a/src/ol/source/WMTS.js +++ b/src/ol/source/WMTS.js @@ -309,7 +309,7 @@ WMTS.prototype.updateDimensions = function(dimensions) { * @return {?olx.source.WMTSOptions} WMTS source options object or `null` if the layer was not found. * @api */ -WMTS.optionsFromCapabilities = function(wmtsCap, config) { +export function optionsFromCapabilities(wmtsCap, config) { const layers = wmtsCap['Contents']['Layer']; const l = find(layers, function(elt, index, array) { return elt['Identifier'] == config['layer']; @@ -476,5 +476,6 @@ WMTS.optionsFromCapabilities = function(wmtsCap, config) { wrapX: wrapX, crossOrigin: config['crossOrigin'] }; -}; +} + export default WMTS; diff --git a/test/spec/ol/source/wmts.test.js b/test/spec/ol/source/wmts.test.js index 99512f90a8..f79f53b64a 100644 --- a/test/spec/ol/source/wmts.test.js +++ b/test/spec/ol/source/wmts.test.js @@ -2,7 +2,7 @@ import WMTSCapabilities from '../../../../src/ol/format/WMTSCapabilities.js'; import {get as getProjection} from '../../../../src/ol/proj.js'; import Projection from '../../../../src/ol/proj/Projection.js'; import WMTSTileGrid from '../../../../src/ol/tilegrid/WMTS.js'; -import WMTS from '../../../../src/ol/source/WMTS.js'; +import WMTS, {optionsFromCapabilities} from '../../../../src/ol/source/WMTS.js'; describe('ol.source.WMTS', function() { @@ -23,7 +23,7 @@ describe('ol.source.WMTS', function() { }); it('returns null if the layer was not found in the capabilities', function() { - const options = WMTS.optionsFromCapabilities(capabilities, { + const options = optionsFromCapabilities(capabilities, { layer: 'invalid' }); @@ -31,7 +31,7 @@ describe('ol.source.WMTS', function() { }); it('passes the crossOrigin option', function() { - const options = WMTS.optionsFromCapabilities(capabilities, { + const options = optionsFromCapabilities(capabilities, { layer: 'BlueMarbleNextGeneration', matrixSet: 'google3857', crossOrigin: '' @@ -42,7 +42,7 @@ describe('ol.source.WMTS', function() { it('can create KVP options from spec/ol/format/wmts/ogcsample.xml', function() { - const options = WMTS.optionsFromCapabilities( + const options = optionsFromCapabilities( capabilities, {layer: 'BlueMarbleNextGeneration', matrixSet: 'google3857'}); @@ -74,7 +74,7 @@ describe('ol.source.WMTS', function() { it('can create REST options from spec/ol/format/wmts/ogcsample.xml', function() { - const options = WMTS.optionsFromCapabilities(capabilities, { + const options = optionsFromCapabilities(capabilities, { layer: 'BlueMarbleNextGeneration', matrixSet: 'google3857', requestEncoding: 'REST' @@ -105,7 +105,7 @@ describe('ol.source.WMTS', function() { }); it('can find a MatrixSet by SRS identifier', function() { - const options = WMTS.optionsFromCapabilities(capabilities, { + const options = optionsFromCapabilities(capabilities, { layer: 'BlueMarbleNextGeneration', projection: 'EPSG:3857', requestEncoding: 'REST' @@ -116,7 +116,7 @@ describe('ol.source.WMTS', function() { }); it('can find a MatrixSet by equivalent SRS identifier', function() { - const options = WMTS.optionsFromCapabilities(capabilities, { + const options = optionsFromCapabilities(capabilities, { layer: 'BlueMarbleNextGeneration', projection: 'EPSG:900913', requestEncoding: 'REST' @@ -127,7 +127,7 @@ describe('ol.source.WMTS', function() { }); it('can find the default MatrixSet', function() { - const options = WMTS.optionsFromCapabilities(capabilities, { + const options = optionsFromCapabilities(capabilities, { layer: 'BlueMarbleNextGeneration', requestEncoding: 'REST' }); @@ -137,7 +137,7 @@ describe('ol.source.WMTS', function() { }); it('uses the projection of the default MatrixSet if the config\'s projection is not supported', function() { - const options = WMTS.optionsFromCapabilities(capabilities, { + const options = optionsFromCapabilities(capabilities, { layer: 'BlueMarbleNextGeneration', projection: new Projection({ code: 'EPSG:2056', @@ -153,7 +153,7 @@ describe('ol.source.WMTS', function() { const tmpXml = content.replace(//g, ''); const tmpCapabilities = parser.read(tmpXml); expect(tmpCapabilities['OperationsMetadata']['GetTile']['DCP']['HTTP']['Get'][0]['Constraint']).to.be(undefined); - const options = WMTS.optionsFromCapabilities(tmpCapabilities, + const options = optionsFromCapabilities(tmpCapabilities, {layer: 'BlueMarbleNextGeneration', matrixSet: 'google3857'}); expect(options.layer).to.be.eql('BlueMarbleNextGeneration'); expect(options.matrixSet).to.be.eql('google3857'); @@ -166,7 +166,7 @@ describe('ol.source.WMTS', function() { const tmpCapabilities = parser.read(tmpXml); expect(tmpCapabilities['OperationsMetadata']['GetTile']['DCP']['HTTP']['Get'][0]['Constraint']).to.be(undefined); expect(tmpCapabilities['Contents']['Layer'][0]['ResourceURL']).to.be(undefined); - const options = WMTS.optionsFromCapabilities(tmpCapabilities, + const options = optionsFromCapabilities(tmpCapabilities, {layer: 'BlueMarbleNextGeneration', matrixSet: 'google3857'}); expect(options.layer).to.be.eql('BlueMarbleNextGeneration'); expect(options.matrixSet).to.be.eql('google3857'); @@ -247,7 +247,7 @@ describe('ol.source.WMTS', function() { it('can create KVP options from spec/ol/format/wmts/arcgis.xml', function() { - const options = WMTS.optionsFromCapabilities( + const options = optionsFromCapabilities( capabilities, { layer: 'Demographics_USA_Population_Density', requestEncoding: 'KVP', @@ -263,7 +263,7 @@ describe('ol.source.WMTS', function() { it('can create REST options from spec/ol/format/wmts/arcgis.xml', function() { - const options = WMTS.optionsFromCapabilities( + const options = optionsFromCapabilities( capabilities, { layer: 'Demographics_USA_Population_Density', matrixSet: 'default028mm'