From d1f54166ffbb269af64447f334d3a145b1e5970e Mon Sep 17 00:00:00 2001 From: Landry Breuil Date: Wed, 12 Mar 2025 14:22:29 +0000 Subject: [PATCH 1/2] hack around --- web/client/api/CSW.js | 10 ++++++++-- web/client/api/catalog/CSW.js | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/web/client/api/CSW.js b/web/client/api/CSW.js index dbaa3896ed6..c2e496ccc65 100644 --- a/web/client/api/CSW.js +++ b/web/client/api/CSW.js @@ -8,7 +8,7 @@ import urlUtil from 'url'; -import { get, head, last, template, isNil, castArray, isEmpty } from 'lodash'; +import { get, head, last, template, isNil, castArray, isEmpty, isArray } from 'lodash'; import assign from 'object-assign'; import xml2js from 'xml2js'; import axios from '../libs/ajax'; @@ -454,7 +454,13 @@ const getBboxFor3DLayersToRecords = async(result)=> { let { records } = result; if (records?.length) { let records3DPromisesForCapabilities = records.map((rec)=>{ - if (rec?.dc?.format === THREE_D_TILES) { + if (castArray(rec?.dc?.format).includes(THREE_D_TILES)) { + if (isArray(rec.dc?.URI)) { + let firstTilesetJsonURL = head(castArray(rec.dc.URI).filter((uri) => { + return uri.protocol && uri.protocol === "OGC:3DTILES"; + })).value; + return getCapabilities(firstTilesetJsonURL); + } let tilesetJsonURL = rec.dc?.URI?.value; return getCapabilities(tilesetJsonURL); } diff --git a/web/client/api/catalog/CSW.js b/web/client/api/catalog/CSW.js index abc788a5679..c40d52ed1dd 100644 --- a/web/client/api/catalog/CSW.js +++ b/web/client/api/catalog/CSW.js @@ -264,9 +264,9 @@ export const getCatalogRecords = (records, options, locales) => { }; let catRecord; - if (dc && dc.format === THREE_D_TILES) { + if (dc && castArray(dc.format).includes(THREE_D_TILES)) { catRecord = getCatalogRecord3DTiles(record, metadata); - } else if (dc && dc.format === MODEL) { + } else if (dc && castArray(dc.format).includes(MODEL)) { // todo: handle get catalog record for ifc } else { const layerType = Object.keys(parsedReferences).filter(key => !ADDITIONAL_OGC_SERVICES.includes(key)).find(key => parsedReferences[key]); From f33277ed6f14381303c4a27bed7b38db0fe40075 Mon Sep 17 00:00:00 2001 From: Landry Breuil Date: Wed, 12 Mar 2025 14:43:41 +0000 Subject: [PATCH 2/2] fix tests --- web/client/api/CSW.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/web/client/api/CSW.js b/web/client/api/CSW.js index c2e496ccc65..61bd62fa80d 100644 --- a/web/client/api/CSW.js +++ b/web/client/api/CSW.js @@ -456,10 +456,12 @@ const getBboxFor3DLayersToRecords = async(result)=> { let records3DPromisesForCapabilities = records.map((rec)=>{ if (castArray(rec?.dc?.format).includes(THREE_D_TILES)) { if (isArray(rec.dc?.URI)) { - let firstTilesetJsonURL = head(castArray(rec.dc.URI).filter((uri) => { + let tilesetJsonURIs = castArray(rec.dc.URI).filter((uri) => { return uri.protocol && uri.protocol === "OGC:3DTILES"; - })).value; - return getCapabilities(firstTilesetJsonURL); + }); + if (tilesetJsonURIs?.length) { + return getCapabilities(head(tilesetJsonURIs).value); + } } let tilesetJsonURL = rec.dc?.URI?.value; return getCapabilities(tilesetJsonURL);