diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5c47c16..c1080f9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,14 @@
+## 6.1.3
+
+### [Fixed]
+
+* `WMTS` :
+ * correction du calcul des tuiles limites pour le TMS natif lorsque les limites de la couche sont surchargées par une bbox
+ * pour que la couche apparaisse dans les capacités Inspire, le format de la tuile doit être le PNG
+ * dans les capacités inspire, `inspire_vs:ExtendedCapabilities` doit être dans `OperationsMetadata`
+* `WMS`
+ * Ajout des schémas XML dans les réponses en erreur
+
## 6.1.2
### [Added]
diff --git a/src/Inspire.cpp b/src/Inspire.cpp
index 6ee3145..2e62abc 100644
--- a/src/Inspire.cpp
+++ b/src/Inspire.cpp
@@ -147,6 +147,11 @@ bool is_inspire_wmts ( Layer* layer ) {
return false;
}
+ if (Rok4Format::to_mime_type ( layer->get_pyramid()->get_format() ) != "image/png") {
+ BOOST_LOG_TRIVIAL(debug) << "Non conforme INSPIRE WMTS (" << layer->get_id() << ") : données pas en png" ;
+ return false;
+ }
+
// Pour être inspire, le style par défaut doit avoir le bon identifiant
if (layer->get_default_style()->get_identifier() != "inspire_common:DEFAULT") {
BOOST_LOG_TRIVIAL(debug) << "Non conforme INSPIRE WMTS (" << layer->get_id() << ") : style par défaut != inspire_common:DEFAULT" ;
diff --git a/src/configurations/Layer.cpp b/src/configurations/Layer.cpp
index 8ac33ce..7c3cfd7 100644
--- a/src/configurations/Layer.cpp
+++ b/src/configurations/Layer.cpp
@@ -217,20 +217,6 @@ bool Layer::parse(json11::Json& doc, ServicesConfiguration* services) {
return false;
}
- // On a forcément le TMS natif de la donnée pour le WMTS
- TileMatrixSetInfos* infos_tms_natif = new TileMatrixSetInfos(pyramid->get_tms());
-
- infos_tms_natif->set_bottom_top(pyramid->get_lowest_level()->get_id(), pyramid->get_highest_level()->get_id());
-
- for (Level* l : pyramid->get_ordered_levels(false)) {
- infos_tms_natif->limits.push_back(l->get_tile_limits());
- }
-
- available_tilematrixsets.push_back(infos_tms_natif);
-
- // On a forcément le CRS natif de la donnée pour le WMS
- available_crss.push_back ( pyramid->get_tms()->get_crs() );
-
/********************** Gestion de l'étendue des données */
if (doc["bbox"].is_object()) {
@@ -255,6 +241,20 @@ bool Layer::parse(json11::Json& doc, ServicesConfiguration* services) {
calculate_bboxes();
}
+ // On a forcément le TMS natif de la donnée pour le WMTS
+ TileMatrixSetInfos* infos_tms_natif = new TileMatrixSetInfos(pyramid->get_tms());
+
+ infos_tms_natif->set_bottom_top(pyramid->get_lowest_level()->get_id(), pyramid->get_highest_level()->get_id());
+
+ for (Level* l : pyramid->get_ordered_levels(false)) {
+ infos_tms_natif->limits.push_back(l->get_tile_limits());
+ }
+
+ available_tilematrixsets.push_back(infos_tms_natif);
+
+ // On a forcément le CRS natif de la donnée pour le WMS
+ available_crss.push_back ( pyramid->get_tms()->get_crs() );
+
// Services autorisés a priori
if (doc["wms"].is_object() && doc["wms"]["enabled"].is_bool()) {
diff --git a/src/services/wms/Exception.cpp b/src/services/wms/Exception.cpp
index 6570cc8..5d18f2d 100644
--- a/src/services/wms/Exception.cpp
+++ b/src/services/wms/Exception.cpp
@@ -45,7 +45,7 @@
#include "services/wms/Exception.h"
-std::string WmsException::xml_template = "%s";
+std::string WmsException::xml_template = "%s";
MessageDataStream* WmsException::get_error_message(std::string reason, std::string code, int status) {
return new MessageDataStream(str(boost::format(xml_template) % code % reason), "text/xml", status);
diff --git a/src/services/wmts/getcapabilities.cpp b/src/services/wmts/getcapabilities.cpp
index bd15f1f..2cb50dc 100644
--- a/src/services/wmts/getcapabilities.cpp
+++ b/src/services/wmts/getcapabilities.cpp
@@ -134,7 +134,7 @@ DataStream* WmtsService::get_capabilities ( Request* req, Rok4Server* serv ) {
op_getfeatureinfo.add("ows:DCP.ows:HTTP.ows:Get.ows:Constraint.ows:AllowedValues.ows:Value", "KVP");
if (req->is_inspire(default_inspire)) {
- ptree& inspire_extension = root.add("inspire_vs:ExtendedCapabilities", "");
+ ptree& inspire_extension = root.add("ows:OperationsMetadata.inspire_vs:ExtendedCapabilities", "");
if (metadata) {
inspire_extension.add("inspire_common:MetadataUrl.inspire_common:URL", metadata->get_href());