diff --git a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/loc/eng/labels.xml b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/loc/eng/labels.xml
index eb809268f0..d08782a43c 100644
--- a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/loc/eng/labels.xml
+++ b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/loc/eng/labels.xml
@@ -3933,6 +3933,7 @@
+
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/ara/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/ara/labels.xml
index ddeb5951d1..a7b9643ff2 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/ara/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/ara/labels.xml
@@ -2193,6 +2193,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/cat/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/cat/labels.xml
index b41df24378..f52c2d5134 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/cat/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/cat/labels.xml
@@ -1875,6 +1875,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/chi/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/chi/labels.xml
index 4ed4f2aea1..2c78d9449a 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/chi/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/chi/labels.xml
@@ -2189,6 +2189,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/dut/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/dut/labels.xml
index d6c5f64fd6..c054d6ddaa 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/dut/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/dut/labels.xml
@@ -1837,6 +1837,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/eng/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/eng/labels.xml
index cee9fb1e04..9734aca080 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/eng/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/eng/labels.xml
@@ -2274,6 +2274,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/fin/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/fin/labels.xml
index 9464ca5bd8..e80ffafe0a 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/fin/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/fin/labels.xml
@@ -2158,6 +2158,7 @@
+
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/ger/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/ger/labels.xml
index 9b6d3c1dd1..0d9a861ad5 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/ger/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/ger/labels.xml
@@ -2584,6 +2584,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/ita/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/ita/labels.xml
index a9692eff16..71dffb075e 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/ita/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/ita/labels.xml
@@ -2041,6 +2041,7 @@
+
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/pol/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/pol/labels.xml
index 975381cc8d..251bd479aa 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/pol/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/pol/labels.xml
@@ -1645,6 +1645,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/por/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/por/labels.xml
index 3ab41c2967..c78c042367 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/por/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/por/labels.xml
@@ -2129,6 +2129,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/rus/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/rus/labels.xml
index 2a85dd8028..8a2e19b42a 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/rus/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/rus/labels.xml
@@ -2223,6 +2223,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/slo/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/slo/labels.xml
index 55d4f68292..b25c966c97 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/slo/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/slo/labels.xml
@@ -1754,6 +1754,7 @@ presnosť / vertikálna -
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/spa/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/spa/labels.xml
index c402682433..ca84fda5dd 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/spa/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/spa/labels.xml
@@ -1945,6 +1945,7 @@
+
diff --git a/schemas/iso19139/src/main/plugin/iso19139/loc/tur/labels.xml b/schemas/iso19139/src/main/plugin/iso19139/loc/tur/labels.xml
index cc08c25b4e..45c029ca16 100644
--- a/schemas/iso19139/src/main/plugin/iso19139/loc/tur/labels.xml
+++ b/schemas/iso19139/src/main/plugin/iso19139/loc/tur/labels.xml
@@ -1785,6 +1785,7 @@
+
diff --git a/web-ui/src/main/resources/catalog/components/metadataactions/RelatedResourcesService.js b/web-ui/src/main/resources/catalog/components/metadataactions/RelatedResourcesService.js
index 888176dabe..19a1a71ad9 100644
--- a/web-ui/src/main/resources/catalog/components/metadataactions/RelatedResourcesService.js
+++ b/web-ui/src/main/resources/catalog/components/metadataactions/RelatedResourcesService.js
@@ -79,7 +79,7 @@
return r.mimeType;
} else if (r.protocol && r.protocol.indexOf("WWW:DOWNLOAD:") >= 0) {
return r.protocol.replace("WWW:DOWNLOAD:", "");
- } else if (mainType.match(/W([MCF]|MT)S.*|3DTILES|ESRI:REST/) != null) {
+ } else if (mainType.match(/W([MCF]|MT)S.*|3DTILES|COG|ESRI:REST/) != null) {
return mainType.replace("SERVICE", "");
} else if (mainType.match(/KML|GPX/) != null) {
return mainType;
@@ -128,6 +128,8 @@
gnViewerSettings.resultviewFns && gnViewerSettings.resultviewFns.addMdLayerToMap;
var add3dTilesToMap =
gnViewerSettings.resultviewFns && gnViewerSettings.resultviewFns.addMdLayerToMap;
+ var addCogeoToMap =
+ gnViewerSettings.resultviewFns && gnViewerSettings.resultviewFns.addMdLayerToMap;
var addEsriRestToMap =
gnViewerSettings.resultviewFns && gnViewerSettings.resultviewFns.addMdLayerToMap;
@@ -286,6 +288,11 @@
label: "addToMap",
action: add3dTilesToMap
},
+ COG: {
+ iconClass: "fa-globe",
+ label: "addToMap",
+ action: addCogeoToMap
+ },
TMS: {
iconClass: "fa-globe",
label: "addToMap",
@@ -517,6 +524,8 @@
return "WMTS";
} else if (protocolOrType.match(/3dtiles/i)) {
return "3DTILES";
+ } else if (protocolOrType.match(/cog/i)) {
+ return "COG";
} else if (protocolOrType.match(/tms/i)) {
return "TMS";
} else if (protocolOrType.match(/wfs/i)) {
diff --git a/web-ui/src/main/resources/catalog/js/CatController.js b/web-ui/src/main/resources/catalog/js/CatController.js
index a28f9edcc2..c76d45b0bf 100644
--- a/web-ui/src/main/resources/catalog/js/CatController.js
+++ b/web-ui/src/main/resources/catalog/js/CatController.js
@@ -1312,6 +1312,7 @@
layers: [
"OGC:WMS",
"OGC:3DTILES",
+ "OGC:COG",
"OGC:WMTS",
"OGC:WMS-1.1.1-http-get-map",
"OGC:WMS-1.3.0-http-get-map",
diff --git a/web-ui/src/main/resources/catalog/locales/en-core.json b/web-ui/src/main/resources/catalog/locales/en-core.json
index dcb6c08026..3e1c220f73 100644
--- a/web-ui/src/main/resources/catalog/locales/en-core.json
+++ b/web-ui/src/main/resources/catalog/locales/en-core.json
@@ -378,6 +378,7 @@
"layerNotAvailableInMapProj": "The service does not provide the layer in the map projection '{{proj}}'. The layer will be added to the map but may not be displayed properly.",
"layerCRSNotFound": "The layer does not provide coordinate reference system information. This may be related to a WMS version lower than 1.3.0.",
"layerTileLoadError": "Something went wrong while loading tile '{{url | limitTo: 30}} ...' for layer '{{layer}}'.",
+ "layerProtocolNotSupported": "The following protocol is not supported yet in the map viewer: {{type}}",
"getCapFailure":"The WMS getCapabilities request failed",
"standards": "Metadata standard",
"documentStandard": "Metadata standard",
diff --git a/web-ui/src/main/resources/catalog/style/gn_icons.less b/web-ui/src/main/resources/catalog/style/gn_icons.less
index 2a1ffaf5be..02d52b2492 100644
--- a/web-ui/src/main/resources/catalog/style/gn_icons.less
+++ b/web-ui/src/main/resources/catalog/style/gn_icons.less
@@ -280,6 +280,8 @@
.gn-icontype-wps,
.gn-icontype-wcs,
.gn-icontype-atom,
+.gn-icontype-3dtiles,
+.gn-icontype-cog,
.gn-icontype-esri-rest,
.gn-icontype-wfs {
background-color: @btn-success-bg !important;
diff --git a/web-ui/src/main/resources/catalog/views/default/module.js b/web-ui/src/main/resources/catalog/views/default/module.js
index 43c3fefb52..b177ea7f38 100644
--- a/web-ui/src/main/resources/catalog/views/default/module.js
+++ b/web-ui/src/main/resources/catalog/views/default/module.js
@@ -169,6 +169,7 @@
"gnFacetSorter",
"gnExternalViewer",
"gnUrlUtils",
+ "gnAlertService",
function (
$scope,
$location,
@@ -191,7 +192,8 @@
gnESFacet,
gnFacetSorter,
gnExternalViewer,
- gnUrlUtils
+ gnUrlUtils,
+ gnAlertService
) {
var viewerMap = gnSearchSettings.viewerMap;
var searchMap = gnSearchSettings.searchMap;
@@ -353,16 +355,23 @@
});
function buildAddToMapConfig(link, md) {
+ var type = "wms";
+ if (link.protocol.indexOf("WMTS") > -1) {
+ type = "wmts";
+ } else if (
+ link.protocol === "ESRI:REST" ||
+ link.protocol.startsWith("ESRI REST")
+ ) {
+ type = "esrirest";
+ } else if (link.protocol === "OGC:3DTILES") {
+ type = "3dtiles";
+ } else if (link.protocol === "OGC:COG") {
+ type = "cog";
+ }
+
var config = {
uuid: md ? md.uuid : null,
- type:
- link.protocol.indexOf("WMTS") > -1
- ? "wmts"
- : link.protocol == "ESRI:REST" || link.protocol.startsWith("ESRI REST")
- ? "esrirest"
- : link.protocol == "OGC:3DTILES"
- ? "3dtiles"
- : "wms",
+ type,
url: $filter("gnLocalized")(link.url) || link.url
};
@@ -412,6 +421,19 @@
);
return;
}
+
+ // no support for COG or 3DTiles for now
+ if (config.type === "cog" || config.type === "3dtiles") {
+ gnAlertService.addAlert({
+ msg: $translate.instant("layerProtocolNotSupported", {
+ type: link.protocol
+ }),
+ delay: 20000,
+ type: "warning"
+ });
+ return;
+ }
+
return config;
}
@@ -419,20 +441,28 @@
addMdLayerToMap: function (link, md) {
// This is probably only a service
// Open the add service layer tab
+ var config = buildAddToMapConfig(link, md);
+ if (!config) {
+ return;
+ }
$location.path("map").search({
- add: encodeURIComponent(angular.toJson([buildAddToMapConfig(link, md)]))
+ add: encodeURIComponent(angular.toJson([config]))
});
- return;
},
addAllMdLayersToMap: function (layers, md) {
- var config = [];
- angular.forEach(layers, function (layer) {
- config.push(buildAddToMapConfig(layer, md));
- });
+ var config = layers
+ .map(function (layer) {
+ return buildAddToMapConfig(layer, md);
+ })
+ .filter(function (config) {
+ return !!config;
+ });
+ if (config.length === 0) {
+ return;
+ }
$location.path("map").search({
add: encodeURIComponent(angular.toJson(config))
});
- return;
},
loadMap: function (map, md) {
gnOwsContextService.loadContextFromUrl(map.url, viewerMap);