Return null if the layer was not found in the WMTS capabilities
This commit is contained in:
@@ -99,13 +99,15 @@ fetch(url).then(function(response) {
|
||||
return response.text();
|
||||
}).then(function(text) {
|
||||
var result = parser.read(text);
|
||||
var options = ol.source.WMTS.optionsFromCapabilities(result,
|
||||
{layer: 'OSM_Land_Mask', matrixSet: 'EPSG3413_250m'});
|
||||
var options = ol.source.WMTS.optionsFromCapabilities(result, {
|
||||
layer: 'OSM_Land_Mask',
|
||||
matrixSet: 'EPSG3413_250m'
|
||||
});
|
||||
options.crossOrigin = '';
|
||||
options.projection = 'EPSG:3413';
|
||||
options.wrapX = false;
|
||||
layers['wmts3413'] = new ol.layer.Tile({
|
||||
source: new ol.source.WMTS(options)
|
||||
source: new ol.source.WMTS(/** @type {!olx.source.WMTSOptions} */ (options))
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -34,6 +34,6 @@ fetch(capabilitiesUrl).then(function(response) {
|
||||
});
|
||||
options.tilePixelRatio = tilePixelRatio;
|
||||
map.addLayer(new ol.layer.Tile({
|
||||
source: new ol.source.WMTS(options)
|
||||
source: new ol.source.WMTS(/** @type {!olx.source.WMTSOptions} */ (options))
|
||||
}));
|
||||
});
|
||||
|
||||
@@ -12,8 +12,10 @@ fetch('data/WMTSCapabilities.xml').then(function(response) {
|
||||
return response.text();
|
||||
}).then(function(text) {
|
||||
var result = parser.read(text);
|
||||
var options = ol.source.WMTS.optionsFromCapabilities(result,
|
||||
{layer: 'layer-7328', matrixSet: 'EPSG:3857'});
|
||||
var options = ol.source.WMTS.optionsFromCapabilities(result, {
|
||||
layer: 'layer-7328',
|
||||
matrixSet: 'EPSG:3857'
|
||||
});
|
||||
|
||||
map = new ol.Map({
|
||||
layers: [
|
||||
@@ -23,7 +25,7 @@ fetch('data/WMTSCapabilities.xml').then(function(response) {
|
||||
}),
|
||||
new ol.layer.Tile({
|
||||
opacity: 1,
|
||||
source: new ol.source.WMTS(options)
|
||||
source: new ol.source.WMTS(/** @type {!olx.source.WMTSOptions} */ (options))
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
|
||||
@@ -292,7 +292,7 @@ ol.source.WMTS.prototype.updateDimensions = function(dimensions) {
|
||||
* - style - {string} The name of the style
|
||||
* - format - {string} Image format for the layer. Default is the first
|
||||
* format returned in the GetCapabilities response.
|
||||
* @return {olx.source.WMTSOptions} WMTS source options object.
|
||||
* @return {?olx.source.WMTSOptions} WMTS source options object or `null` if the layer was not found.
|
||||
* @api
|
||||
*/
|
||||
ol.source.WMTS.optionsFromCapabilities = function(wmtsCap, config) {
|
||||
@@ -300,6 +300,9 @@ ol.source.WMTS.optionsFromCapabilities = function(wmtsCap, config) {
|
||||
var l = ol.array.find(layers, function(elt, index, array) {
|
||||
return elt['Identifier'] == config['layer'];
|
||||
});
|
||||
if (l === null) {
|
||||
return null;
|
||||
}
|
||||
var tileMatrixSets = wmtsCap['Contents']['TileMatrixSet'];
|
||||
var idx, matrixSet, matrixLimits;
|
||||
if (l['TileMatrixSetLink'].length > 1) {
|
||||
|
||||
@@ -23,6 +23,14 @@ describe('ol.source.WMTS', function() {
|
||||
});
|
||||
});
|
||||
|
||||
it('returns null if the layer was not found in the capabilities', function() {
|
||||
var options = ol.source.WMTS.optionsFromCapabilities(capabilities, {
|
||||
layer: 'invalid'
|
||||
});
|
||||
|
||||
expect(options).to.be(null);
|
||||
});
|
||||
|
||||
it('can create KVP options from spec/ol/format/wmts/ogcsample.xml',
|
||||
function() {
|
||||
var options = ol.source.WMTS.optionsFromCapabilities(
|
||||
|
||||
Reference in New Issue
Block a user