From b6a627d5b75249ce1903b9c450b5ec85d710fc0f Mon Sep 17 00:00:00 2001 From: VincentMiras Date: Mon, 3 Nov 2025 11:27:20 +0100 Subject: [PATCH 1/6] test_etrrainrgb_server --- src/services/wms/getmap.cpp | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/services/wms/getmap.cpp b/src/services/wms/getmap.cpp index 96c440b..31ab0e9 100644 --- a/src/services/wms/getmap.cpp +++ b/src/services/wms/getmap.cpp @@ -48,6 +48,10 @@ #include #include +#include +#include +#include +#include #include #include #include @@ -284,12 +288,33 @@ DataStream* WmsService::get_map ( Request* req, Rok4Server* serv ) { throw WmsException::get_error_message("BBOX too big", "InvalidParameterValue", 400); } - image = new PaletteImage(image, style->get_palette()); + Image* styled_image = image; + + if (style->estompage_defined()) { + styled_image = new EstompageImage (image, style->get_estompage()); + } + else if (style->pente_defined()) { + styled_image = new PenteImage (image, style->get_pente()); + } + else if (style->aspect_defined()) { + styled_image = new AspectImage (image, style->get_aspect()) ; + } + else if (style->terrainrgb_defined()) { + styled_image = new TerrainrgbImage (image, style->get_terrainrgb()) ; + } + + if (style->palette_defined()){ + if ( styled_image->get_channels() == 1 && ! ( style->get_palette()->is_empty() ) ) { + image = new PaletteImage ( styled_image , style->get_palette() ); + } + }else { + image=styled_image; + } images.push_back(image); // Le nombre final de canaux est celui maxiumum parmis les couches, c'est à dire celui de la donnée en prenant en compte le style - bands = std::max(bands, style->get_channels(layers.at(i)->get_pyramid()->get_channels())); + bands = std::max(bands, image->get_channels()); } // On construit la réponse finale, en superposant les couches From bf3608722858a8ea2d7881c9abd57f10b2614f3b Mon Sep 17 00:00:00 2001 From: VincentMiras Date: Tue, 4 Nov 2025 18:20:05 +0100 Subject: [PATCH 2/6] =?UTF-8?q?correction=20trou=20possibilit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/wms/getmap.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/services/wms/getmap.cpp b/src/services/wms/getmap.cpp index 6eb415d..29ccd21 100644 --- a/src/services/wms/getmap.cpp +++ b/src/services/wms/getmap.cpp @@ -306,6 +306,9 @@ DataStream* WmsService::get_map ( Request* req, Rok4Server* serv ) { if ( styled_image->get_channels() == 1 && ! ( style->get_palette()->is_empty() ) ) { image = new PaletteImage ( styled_image , style->get_palette() ); } + else{ + image=styled_image; + } }else { image=styled_image; } From a83fcac4eb51ecef058327ae32c07e47b4ad7593 Mon Sep 17 00:00:00 2001 From: VincentMiras Date: Wed, 19 Nov 2025 14:48:14 +0100 Subject: [PATCH 3/6] Remplacement du traitement du style avec la nouvelle classe StyledImage de la lib core-cpp --- src/services/wms/getmap.cpp | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/src/services/wms/getmap.cpp b/src/services/wms/getmap.cpp index 29ccd21..bdb9244 100644 --- a/src/services/wms/getmap.cpp +++ b/src/services/wms/getmap.cpp @@ -46,11 +46,7 @@ #include #include -#include -#include -#include -#include -#include +#include #include #include #include @@ -287,33 +283,8 @@ DataStream* WmsService::get_map ( Request* req, Rok4Server* serv ) { throw WmsException::get_error_message("BBOX too big", "InvalidParameterValue", 400); } - Image* styled_image = image; - - if (style->estompage_defined()) { - styled_image = new EstompageImage (image, style->get_estompage()); - } - else if (style->pente_defined()) { - styled_image = new PenteImage (image, style->get_pente()); - } - else if (style->aspect_defined()) { - styled_image = new AspectImage (image, style->get_aspect()) ; - } - else if (style->terrainrgb_defined()) { - styled_image = new TerrainrgbImage (image, style->get_terrainrgb()) ; - } - - if (style->palette_defined()){ - if ( styled_image->get_channels() == 1 && ! ( style->get_palette()->is_empty() ) ) { - image = new PaletteImage ( styled_image , style->get_palette() ); - } - else{ - image=styled_image; - } - }else { - image=styled_image; - } - - images.push_back(image); + StyledImage* s_image = new StyledImage(image,style); + images.push_back(s_image->styled_image); // Le nombre final de canaux est celui maxiumum parmis les couches, c'est à dire celui de la donnée en prenant en compte le style bands = std::max(bands, image->get_channels()); From 8c6665db5265685f7255c5c9a9fd6cf5ef425854 Mon Sep 17 00:00:00 2001 From: VincentMiras Date: Wed, 19 Nov 2025 15:09:46 +0100 Subject: [PATCH 4/6] =?UTF-8?q?Mis=20=C3=A0=20jour=20changelog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de2521b..feb1a75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,8 @@ Le format est basé sur [Keep a Changelog](https://keepachangelog.com/) et ce pr ### Changed - Refonte du CHANGELOG au format [Keep a Changelog](https://keepachangelog.com/) -- Changement des imports de Cache aux imports spécifiques des classes suite à la séparation du fichier Cache dans core-cpp. +- Changement des imports de Cache aux imports spécifiques des classes suite à la séparation du fichier Cache dans core-cpp. +- Changement de la manière de traiter le style dans le getmap permettant d'utiliser des styles sans palette. ### Deprecated ### Removed From 08fbce3313b3fc73bd92fd3d352d6e200cb812fe Mon Sep 17 00:00:00 2001 From: VincentMiras Date: Wed, 26 Nov 2025 12:05:01 +0100 Subject: [PATCH 5/6] Correction du nombre de channels pris sur la mauvaise image. --- src/services/wms/getmap.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/wms/getmap.cpp b/src/services/wms/getmap.cpp index bdb9244..db51c31 100644 --- a/src/services/wms/getmap.cpp +++ b/src/services/wms/getmap.cpp @@ -284,7 +284,8 @@ DataStream* WmsService::get_map ( Request* req, Rok4Server* serv ) { } StyledImage* s_image = new StyledImage(image,style); - images.push_back(s_image->styled_image); + image = s_image->styled_image; + images.push_back(image); // Le nombre final de canaux est celui maxiumum parmis les couches, c'est à dire celui de la donnée en prenant en compte le style bands = std::max(bands, image->get_channels()); @@ -370,6 +371,5 @@ DataStream* WmsService::get_map ( Request* req, Rok4Server* serv ) { delete final_image; throw WmsException::get_error_message("Used data format (" + std::to_string(bands) + " band(s) " + SampleFormat::to_string(sample_format) + ") and expected output format (" + format + ") are not consistent", "InvalidParameterValue", 400); } - return NULL; } \ No newline at end of file From 6e9c10328c30faf472dd0f644fc589940276e9b4 Mon Sep 17 00:00:00 2001 From: VincentMiras Date: Wed, 3 Dec 2025 17:25:40 +0100 Subject: [PATCH 6/6] =?UTF-8?q?Adaptation=20au=20changement=20de=20la=20ma?= =?UTF-8?q?ni=C3=A8re=20de=20cr=C3=A9er=20une=20styledImage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/wms/getmap.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/wms/getmap.cpp b/src/services/wms/getmap.cpp index db51c31..59adb21 100644 --- a/src/services/wms/getmap.cpp +++ b/src/services/wms/getmap.cpp @@ -283,8 +283,8 @@ DataStream* WmsService::get_map ( Request* req, Rok4Server* serv ) { throw WmsException::get_error_message("BBOX too big", "InvalidParameterValue", 400); } - StyledImage* s_image = new StyledImage(image,style); - image = s_image->styled_image; + StyledImage* s_image = StyledImage::create(image,style); + image = s_image; images.push_back(image); // Le nombre final de canaux est celui maxiumum parmis les couches, c'est à dire celui de la donnée en prenant en compte le style