@@ -12,7 +12,7 @@ import { AttributionConfig } from './Attribution.js';
1212import { LayerConfig , LayersConfig } from './Layer.js' ;
1313
1414/**
15- * Class representing a wMS layer Geographic Bounding Box
15+ * Class representing a WMS layer Geographic Bounding Box
1616 * @class
1717 * @augments Extent
1818 */
@@ -403,29 +403,34 @@ export class LayerTreeGroupConfig extends LayerTreeItemConfig {
403403/**
404404 * Function to build layer tree items config based on WMS capabilities
405405 * @function
406- * @param {object } wmsCapaLayerGroup - the wms layer capabilities
406+ * @param {object } wmsCapaLayerGroup - the WMS layer capabilities
407407 * @param {LayersConfig } layersCfg - the lizmap layers config instance
408- * @param {number } level - the wms layer level
409- * @returns {LayerTreeItemConfig[] } the layer tree items of the wms layer
408+ * @param {number } level - the WMS layer level
409+ * @param {Array[string] } invalid - List of invalid WMS layer name
410+
411+ * @returns {Array[LayerTreeItemConfig[], String[]] } The layer tree items of the WMS layer, and the list of invalid layer names
410412 */
411- function buildLayerTreeGroupConfigItems ( wmsCapaLayerGroup , layersCfg , level ) {
413+ function buildLayerTreeGroupConfigItems ( wmsCapaLayerGroup , layersCfg , level , invalid ) {
412414 let items = [ ] ;
415+
413416 if ( ! wmsCapaLayerGroup . hasOwnProperty ( 'Layer' ) ) {
414417 return items ;
415418 }
419+
416420 for ( const wmsCapaLayer of wmsCapaLayerGroup . Layer ) {
417421 const wmsName = wmsCapaLayer . Name ;
418422 const cfg = layersCfg . getLayerConfigByWmsName ( wmsName ) ;
419423 if ( cfg == null ) {
420- console . log ( 'The WMS layer name `' + wmsName + '` is unknown!' ) ;
424+ invalid . push ( wmsName ) ;
421425 continue ;
422426 }
423- if ( wmsCapaLayer . hasOwnProperty ( 'Layer' ) && wmsCapaLayer . Layer . length != 0 ) {
424- const groupItems = buildLayerTreeGroupConfigItems ( wmsCapaLayer , layersCfg , level + 1 ) ;
427+
428+ if ( wmsCapaLayer . hasOwnProperty ( 'Layer' ) && wmsCapaLayer . Layer . length !== 0 ) {
429+ const groupItems = buildLayerTreeGroupConfigItems ( wmsCapaLayer , layersCfg , level + 1 , invalid ) ;
425430 items . push ( new LayerTreeGroupConfig ( cfg . name , level + 1 , groupItems , wmsCapaLayer , cfg ) ) ;
426431 } else {
427432 // avoid to add the baseLayers group to the map if it doesn't contain any layer.
428- if ( wmsName . toLowerCase ( ) != 'baselayers' ) {
433+ if ( wmsName . toLowerCase ( ) !== 'baselayers' ) {
429434 items . push ( new LayerTreeLayerConfig ( cfg . name , level + 1 , wmsCapaLayer , cfg ) ) ;
430435 }
431436
@@ -437,11 +442,12 @@ function buildLayerTreeGroupConfigItems(wmsCapaLayerGroup, layersCfg, level) {
437442/**
438443 * Function to build the root layer tree config based on WMS capabilities
439444 * @function
440- * @param {object } wmsCapaLayerRoot - the wms root layer capabilities
445+ * @param {object } wmsCapaLayerRoot - the WMS root layer capabilities
441446 * @param {LayersConfig } layersCfg - the lizmap layers config instance
442- * @returns {LayerTreeGroupConfig } The root layer tree config based on WMS capabilities
447+ * @param {Array[string] } invalid - List of invalid WMS layer name
448+ * @returns {LayerTreeGroupConfig } The root layer tree config based on WMS capabilities, and the list of invalid layer names.
443449 */
444- export function buildLayerTreeConfig ( wmsCapaLayerRoot , layersCfg ) {
445- let items = buildLayerTreeGroupConfigItems ( wmsCapaLayerRoot , layersCfg , 0 ) ;
446- return new LayerTreeGroupConfig ( 'root' , 0 , items , wmsCapaLayerRoot ) ;
450+ export function buildLayerTreeConfig ( wmsCapaLayerRoot , layersCfg , invalid = [ ] ) {
451+ const items = buildLayerTreeGroupConfigItems ( wmsCapaLayerRoot , layersCfg , 0 ) ;
452+ return [ new LayerTreeGroupConfig ( 'root' , 0 , items , wmsCapaLayerRoot ) , invalid ] ;
447453}
0 commit comments