diff --git a/src/datasource/Manager.js b/src/datasource/Manager.js index fd2a235cafbb..e540166244fc 100644 --- a/src/datasource/Manager.js +++ b/src/datasource/Manager.js @@ -747,8 +747,17 @@ export class DatasourceManager { if (wmtsUrl) { options.wmtsUrl = wmtsUrl; } - if (ogcServerType === ServerType.ARCGIS && this.gmfDatasourceOptions.arcgisWMSInfoFormat) { - options.wmsInfoFormat = this.gmfDatasourceOptions.arcgisWMSInfoFormat; + if (ogcServerType === ServerType.ARCGIS) { + if ( + this.gmfDatasourceOptions.ogcServersSpecific && + this.gmfDatasourceOptions.ogcServersSpecific[this.ogcServerName] && + this.gmfDatasourceOptions.ogcServersSpecific[this.ogcServerName].arcgisWMSInfoFormat + ) { + options.wmsInfoFormat = + this.gmfDatasourceOptions.ogcServersSpecific[this.ogcServerName].arcgisWMSInfoFormat; + } else if (this.gmfDatasourceOptions.arcgisWMSInfoFormat) { + options.wmsInfoFormat = this.gmfDatasourceOptions.arcgisWMSInfoFormat; + } } // Create the data source and add it to the cache this.dataSourcesCache_[id] = new GmfDatasourceOGC(options); diff --git a/src/options.js b/src/options.js index e62a645959be..f357ad962b25 100644 --- a/src/options.js +++ b/src/options.js @@ -924,9 +924,15 @@ export function buildStyle(styleDescriptor) { * @property {number} [duration] The duration of the animation in milliseconds. By default, there is no animation to the target extent. */ +/** + * @typedef {Object} ogcServerDatasourceOptions + * @property {string} arcgisWMSInfoFormat The WMS info format to be used with Arcgis OGC server. + */ + /** * @typedef {Object} gmfDatasourceOptions * @property {string} arcgisWMSInfoFormat The WMS info format to be used with Arcgis OGC server. + * @property {Object} ogcServersSpecific The OGC server specific options. */ export default null; diff --git a/srcapi/store/config.ts b/srcapi/store/config.ts index 8cff5a9d2ea6..0d11f654de4d 100644 --- a/srcapi/store/config.ts +++ b/srcapi/store/config.ts @@ -1386,12 +1386,20 @@ export type gmfCustomCSS = { */ export type pytreeLidarprofileJsonUrl = string; +export type ogcServerDatasourceOptions = { + /** + * The WMS info format to be used with Arcgis OGC server. + */ + arcgisWMSInfoFormat: string; +}; export type gmfDatasourceOptions = { /** * The WMS info format to be used with Arcgis OGC server. */ arcgisWMSInfoFormat: string; + ogcServersSpecific: {[x: string]: ogcServerDatasourceOptions}; }; + /** * The full configuration */