From e0fccc1540906f4c25733d0ae719e0c30e91e949 Mon Sep 17 00:00:00 2001
From: Rob Quincey <109682469+RobQuincey-DC@users.noreply.github.com>
Date: Wed, 24 Jul 2024 12:52:07 +0000
Subject: [PATCH] Add opaque property to WMS
---
fixtures/wms/capabilities-brgm-1-1-1.xml | 4 ++--
fixtures/wms/capabilities-brgm-1-3-0.xml | 4 ++--
src/wms/capabilities.spec.ts | 6 ++++++
src/wms/capabilities.ts | 6 ++++++
src/wms/endpoint.spec.ts | 1 +
src/wms/model.ts | 1 +
6 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/fixtures/wms/capabilities-brgm-1-1-1.xml b/fixtures/wms/capabilities-brgm-1-1-1.xml
index 019d86e..643a374 100644
--- a/fixtures/wms/capabilities-brgm-1-1-1.xml
+++ b/fixtures/wms/capabilities-brgm-1-1-1.xml
@@ -240,7 +240,7 @@
-
+
SCAN_F_GEOL250
Carte géologique image de la France au 1/250000
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
@@ -275,7 +275,7 @@
-
+
SCAN_D_GEOL50
Carte géologique image de la France au 1/50 000e
BD Scan-Géol-50 est la base de données géoréférencées des cartes géologiques 'papier' à 1/50 000
diff --git a/fixtures/wms/capabilities-brgm-1-3-0.xml b/fixtures/wms/capabilities-brgm-1-3-0.xml
index fa653ee..3fbd863 100644
--- a/fixtures/wms/capabilities-brgm-1-3-0.xml
+++ b/fixtures/wms/capabilities-brgm-1-3-0.xml
@@ -248,7 +248,7 @@
200000
1e+07
-
+
SCAN_F_GEOL250
Carte géologique image de la France au 1/250000
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
@@ -289,7 +289,7 @@
80000
500000
-
+
SCAN_D_GEOL50
Carte géologique image de la France au 1/50 000e
BD Scan-Géol-50 est la base de données géoréférencées des cartes géologiques 'papier' à 1/50 000
diff --git a/src/wms/capabilities.spec.ts b/src/wms/capabilities.spec.ts
index e22d151..f27cfd5 100644
--- a/src/wms/capabilities.spec.ts
+++ b/src/wms/capabilities.spec.ts
@@ -64,6 +64,7 @@ describe('WMS capabilities', () => {
],
name: 'GEOSERVICES_GEOLOGIE',
queryable: false,
+ opaque: false,
styles: [
{
legendUrl: expect.stringContaining(
@@ -89,6 +90,7 @@ describe('WMS capabilities', () => {
keywords: [],
name: 'GEOLOGIE',
queryable: false,
+ opaque: false,
styles,
title: 'Cartes géologiques',
children: [
@@ -132,6 +134,7 @@ describe('WMS capabilities', () => {
keywords: ['Geologie', 'INSPIRE:Geology', 'Geology'],
name: 'SCAN_F_GEOL1M',
queryable: false,
+ opaque: false,
styles: [
{
legendUrl:
@@ -184,6 +187,7 @@ 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',
},
@@ -223,6 +227,7 @@ 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',
},
@@ -250,6 +255,7 @@ describe('WMS capabilities', () => {
keywords: [],
name: 'INHERIT_BBOX',
queryable: false,
+ opaque: false,
styles: [
{
name: 'default',
diff --git a/src/wms/capabilities.ts b/src/wms/capabilities.ts
index 8fe059c..adb462e 100644
--- a/src/wms/capabilities.ts
+++ b/src/wms/capabilities.ts
@@ -139,6 +139,11 @@ function parseLayer(
? true
: false;
+ const opaque =
+ layerEl.attributes.opaque === '1' ||
+ layerEl.attributes.opaque === 'true'
+ ? true
+ : false;
const keywords = findChildrenElement(
findChildElement(layerEl, 'KeywordList'),
'Keyword'
@@ -159,6 +164,7 @@ function parseLayer(
boundingBoxes,
keywords,
queryable,
+ opaque,
...(children.length && { children }),
};
}
diff --git a/src/wms/endpoint.spec.ts b/src/wms/endpoint.spec.ts
index 566e31d..b96eb3b 100644
--- a/src/wms/endpoint.spec.ts
+++ b/src/wms/endpoint.spec.ts
@@ -134,6 +134,7 @@ describe('WmsEndpoint', () => {
keywords: [],
name: 'GEOLOGIE',
queryable: false,
+ opaque: false,
styles: [
{
name: 'default',
diff --git a/src/wms/model.ts b/src/wms/model.ts
index 7966b62..73b27f5 100644
--- a/src/wms/model.ts
+++ b/src/wms/model.ts
@@ -33,6 +33,7 @@ export type WmsLayerFull = {
*/
boundingBoxes: Record;
queryable: boolean;
+ opaque: boolean;
attribution?: WmsLayerAttribution;
keywords?: string[];
/**