Skip to content

Commit

Permalink
Merge pull request #57 from RobQuincey-DC/feature-add-wms-queryable
Browse files Browse the repository at this point in the history
Add 'queryable' property to WMS
  • Loading branch information
jahow authored Jul 24, 2024
2 parents 9671ef4 + 6cb4557 commit 377887e
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 4 deletions.
1 change: 1 addition & 0 deletions app/src/components/wms/WmsLayerInfo.vue
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export default {
attribution: this.layer.attribution.title,
}),
...(this.layer.keywords && { keywords: this.layer.keywords }),
...(this.layer.queryable && { queryable: this.layer.queryable }),
};
},
fullMapSrc() {
Expand Down
4 changes: 2 additions & 2 deletions fixtures/wms/capabilities-brgm-1-1-1.xml
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@
</Style>
<ScaleHint min="74.8354272644456" max="3741.77136322228" />
</Layer>
<Layer queryable="0" opaque="0" cascaded="0">
<Layer queryable="true" opaque="true" cascaded="0">
<Name>SCAN_F_GEOL250</Name>
<Title>Carte géologique image de la France au 1/250000</Title>
<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</Abstract>
Expand Down Expand Up @@ -275,7 +275,7 @@
</MetadataURL>
<ScaleHint min="29.9341709057782" max="187.088568161114" />
</Layer>
<Layer queryable="0" opaque="0" cascaded="0">
<Layer queryable="1" opaque="1" cascaded="0">
<Name>SCAN_D_GEOL50</Name>
<Title>Carte géologique image de la France au 1/50 000e</Title>
<Abstract>BD Scan-Géol-50 est la base de données géoréférencées des cartes géologiques &#39;papier&#39; à 1/50 000</Abstract>
Expand Down
4 changes: 2 additions & 2 deletions fixtures/wms/capabilities-brgm-1-3-0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@
<MinScaleDenominator>200000</MinScaleDenominator>
<MaxScaleDenominator>1e+07</MaxScaleDenominator>
</Layer>
<Layer queryable="0" opaque="0" cascaded="0">
<Layer queryable="true" opaque="true" cascaded="0">
<Name>SCAN_F_GEOL250</Name>
<Title>Carte géologique image de la France au 1/250000</Title>
<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</Abstract>
Expand Down Expand Up @@ -289,7 +289,7 @@
<MinScaleDenominator>80000</MinScaleDenominator>
<MaxScaleDenominator>500000</MaxScaleDenominator>
</Layer>
<Layer queryable="0" opaque="0" cascaded="0">
<Layer queryable="1" opaque="1" cascaded="0">
<Name>SCAN_D_GEOL50</Name>
<Title>Carte géologique image de la France au 1/50 000e</Title>
<Abstract>BD Scan-Géol-50 est la base de données géoréférencées des cartes géologiques &#39;papier&#39; à 1/50 000</Abstract>
Expand Down
12 changes: 12 additions & 0 deletions src/wms/capabilities.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ describe('WMS capabilities', () => {
'SLD 1.1.0',
],
name: 'GEOSERVICES_GEOLOGIE',
queryable: false,
opaque: false,
styles: [
{
legendUrl: expect.stringContaining(
Expand All @@ -87,6 +89,8 @@ describe('WMS capabilities', () => {
},
keywords: [],
name: 'GEOLOGIE',
queryable: false,
opaque: false,
styles,
title: 'Cartes géologiques',
children: [
Expand Down Expand Up @@ -129,6 +133,8 @@ describe('WMS capabilities', () => {
},
keywords: ['Geologie', 'INSPIRE:Geology', 'Geology'],
name: 'SCAN_F_GEOL1M',
queryable: false,
opaque: false,
styles: [
{
legendUrl:
Expand Down Expand Up @@ -180,6 +186,8 @@ describe('WMS capabilities', () => {
},
keywords: ['Geologie', 'INSPIRE:Geology', 'Geology'],
name: 'SCAN_F_GEOL250',
queryable: true,
opaque: true,
styles,
title: 'Carte géologique image de la France au 1/250000',
},
Expand Down Expand Up @@ -218,6 +226,8 @@ describe('WMS capabilities', () => {
},
keywords: ['Geologie', 'INSPIRE:Geology', 'Geology'],
name: 'SCAN_D_GEOL50',
queryable: true,
opaque: true,
styles,
title: 'Carte géologique image de la France au 1/50 000e',
},
Expand All @@ -244,6 +254,8 @@ describe('WMS capabilities', () => {
},
keywords: [],
name: 'INHERIT_BBOX',
queryable: false,
opaque: false,
styles: [
{
name: 'default',
Expand Down
12 changes: 12 additions & 0 deletions src/wms/capabilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,16 @@ function parseLayer(
? boundingBoxes
: inheritedBoundingBoxes;

const queryable =
layerEl.attributes.queryable === '1' ||
layerEl.attributes.queryable === 'true'
? true
: false;

const opaque =
layerEl.attributes.opaque === '1' || layerEl.attributes.opaque === 'true'
? true
: false;
const keywords = findChildrenElement(
findChildElement(layerEl, 'KeywordList'),
'Keyword'
Expand All @@ -152,6 +162,8 @@ function parseLayer(
attribution,
boundingBoxes,
keywords,
queryable,
opaque,
...(children.length && { children }),
};
}
Expand Down
2 changes: 2 additions & 0 deletions src/wms/endpoint.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ describe('WmsEndpoint', () => {
},
keywords: [],
name: 'GEOLOGIE',
queryable: false,
opaque: false,
styles: [
{
name: 'default',
Expand Down
2 changes: 2 additions & 0 deletions src/wms/model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ export type WmsLayerFull = {
* Dict of bounding boxes where keys are CRS codes
*/
boundingBoxes: Record<CrsCode, BoundingBox>;
queryable: boolean;
opaque: boolean;
attribution?: WmsLayerAttribution;
keywords?: string[];
/**
Expand Down

0 comments on commit 377887e

Please sign in to comment.