Skip to content

Commit 673fafb

Browse files
authoredApr 17, 2018
Merge pull request #6792 from mhugent/get_legend_fix_no_layers
2.18 Server: return empty image in GetLegendGraphis if no layer is there
2 parents 73f7bd3 + c217cbb commit 673fafb

File tree

3 files changed

+3722
-2
lines changed

3 files changed

+3722
-2
lines changed
 

‎src/server/qgswmsserver.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,7 @@ QImage* QgsWMSServer::getLegendGraphics()
762762

763763
if ( layersList.size() < 1 )
764764
{
765-
return nullptr;
765+
return createImage( 1, 1, false );
766766
}
767767

768768
//scale
@@ -782,7 +782,7 @@ QImage* QgsWMSServer::getLegendGraphics()
782782
QStringList layerIds = mConfigParser->layerSet( layersList, stylesList, dummyCRS, scaleDenominator );
783783
if ( layerIds.size() < 1 )
784784
{
785-
return nullptr;
785+
return createImage( 1, 1, false );
786786
}
787787

788788
//get icon size, spaces between legend items and font from config parser

‎tests/src/python/test_qgsserver.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -893,6 +893,25 @@ def test_wms_GetLegendGraphic_BBox2(self):
893893
r, h = self._result(self.server.handleRequest(qs))
894894
self._img_diff_error(r, h, "WMS_GetLegendGraphic_BBox2")
895895

896+
def test_wms_GetLegendGraphic_EmptyLegend(self):
897+
mapPath = self.testdata_path + 'test_project_contextual_legend.qgs'
898+
qs = "&".join(["%s=%s" % i for i in list({
899+
"MAP": urllib.quote(mapPath),
900+
"SERVICE": "WMS",
901+
"VERSION": "1.3.1",
902+
"REQUEST": "GetLegendGraphic",
903+
"LAYER": "QGIS%20Server%20Hello%20World",
904+
"FORMAT": "image/png",
905+
"HEIGHT": "840",
906+
"WIDTH": "1226",
907+
"BBOX": "10.38450,-49.6370,73.8183,42.9461",
908+
"SRS": "EPSG:4326",
909+
"SCALE": "15466642"
910+
}.items())])
911+
912+
r, h = self._result(self.server.handleRequest(qs) )
913+
self.assertTrue( h['Content-Type'] == 'image/png' )
914+
896915
def _result(self, data):
897916
headers = {}
898917
for line in data[0].decode('UTF-8').split("\n"):

‎tests/testdata/qgis_server/test_project_contextual_legend.qgs

Lines changed: 3701 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.