Skip to content

Commit

Permalink
Merge pull request #89 from AlitaBernachot/wms_flatten_layers
Browse files Browse the repository at this point in the history
Wms flatten layers
  • Loading branch information
jahow authored Feb 11, 2025
2 parents fb5d9e1 + 4732ef2 commit 8fa0859
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 2 deletions.
2 changes: 0 additions & 2 deletions app/src/Docs.vue
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,6 @@ async function addWmtsLayer() {
>
</CodeBlock>
</p>

<h2 class="mt-5 mb-4">API</h2>
</div>
</template>

Expand Down
47 changes: 47 additions & 0 deletions src/wms/endpoint.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,53 @@ describe('WmsEndpoint', () => {
});
});

describe('#getFlattenedLayers', () => {
it('returns a list of layers', async () => {
await endpoint.isReady();
expect(endpoint.getFlattenedLayers()).toEqual([
{
abstract:
"Ensemble des services d'accès aux données sur la géologie, l'hydrogéologie et la gravimétrie, diffusées par le BRGM",
name: 'GEOSERVICES_GEOLOGIE',
title: 'GéoServices : géologie, hydrogéologie et gravimétrie',
},
{
abstract: 'Cartes géologiques',
name: 'GEOLOGIE',
title: 'Cartes géologiques',
},
{
abstract:
'BD Scan-Million-Géol est la base de données géoréférencées de la carte géologique image à 1/1 000 000',
name: 'SCAN_F_GEOL1M',
title: 'Carte géologique image de la France au million',
},
{
abstract:
'BD Scan-Géol-250 est la base de données géoréférencées des cartes géologiques image à 1/250 000. Utilisation scientifique, technique, pédagogique',
name: 'SCAN_F_GEOL250',
title: 'Carte géologique image de la France au 1/250000',
},
{
abstract:
"BD Scan-Géol-50 est la base de données géoréférencées des cartes géologiques 'papier' à 1/50 000",
name: 'SCAN_D_GEOL50',
title: 'Carte géologique image de la France au 1/50 000e',
},
{
abstract: '',
name: 'INHERIT_SCALE',
title: 'Inherited scale denominators',
},
{
abstract: '',
name: 'INHERIT_BBOX',
title: 'Inherited bounding boxes',
},
]);
});
});

describe('#getLayerByName', () => {
it('returns detailed info on a layer', async () => {
await endpoint.isReady();
Expand Down
19 changes: 19 additions & 0 deletions src/wms/endpoint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,13 @@ export default class WmsEndpoint {
return this._layers.map(layerSummaryMapper);
}

/**
* Returns a array of layers, same as WmsEndpoint.getLayers(), but flattened
*/
getFlattenedLayers() {
return this.getLayers().flatMap(wmsLayerFlatten);
}

/**
* Returns the full layer information, including supported coordinate systems, available layers, bounding boxes etc.
* Layer name is case-sensitive.
Expand Down Expand Up @@ -205,3 +212,15 @@ export default class WmsEndpoint {
return this._url[operationName]?.[method];
}
}

function wmsLayerFlatten(layerFull) {
const layer = {
title: layerFull.title,
name: layerFull.name,
abstract: layerFull.abstract,
};

return 'children' in layerFull && Array.isArray(layerFull.children)
? [layer, ...layerFull.children.flatMap(wmsLayerFlatten)]
: [layer];
}

0 comments on commit 8fa0859

Please sign in to comment.