From e1d43b01a860951bb3a4ba280b66320003a6d0c3 Mon Sep 17 00:00:00 2001 From: signedav Date: Fri, 24 Feb 2023 14:01:32 +0100 Subject: [PATCH] tests for meter based default scales --- .../test_qgsserver_wms_getlegendgraphic.py | 149 ++- ...aphic_MetersAtScaleSymbol_DefaultScale.png | Bin 0 -> 4676 bytes ...aphic_MetersAtScaleSymbol_DefaultScale.png | Bin 0 -> 4676 bytes ..._MetersAtScaleSymbol_DefaultScale_2056.png | Bin 0 -> 5113 bytes ..._MetersAtScaleSymbol_DefaultScale_2056.png | Bin 0 -> 5113 bytes ...LegendGraphic_MetersAtScaleSymbol_Rule.png | Bin 0 -> 624 bytes ...LegendGraphic_MetersAtScaleSymbol_Rule.png | Bin 0 -> 624 bytes ...dGraphic_MetersAtScaleSymbol_Rule_2056.png | Bin 0 -> 985 bytes ...dGraphic_MetersAtScaleSymbol_Rule_2056.png | Bin 0 -> 985 bytes ...gendGraphic_MetersAtScaleSymbol_Scaled.png | Bin 0 -> 19432 bytes ...gendGraphic_MetersAtScaleSymbol_Scaled.png | Bin 0 -> 19432 bytes ...raphic_MetersAtScaleSymbol_Scaled_2056.png | Bin 0 -> 3510 bytes ...raphic_MetersAtScaleSymbol_Scaled_2056.png | Bin 0 -> 3510 bytes .../test_project_meters_at_scaledsymbols.qgs | 1003 +++++++++++++++++ ...t_project_meters_at_scaledsymbols_2056.qgs | 890 +++++++++++++++ 15 files changed, 2018 insertions(+), 24 deletions(-) create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056.png create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056.png create mode 100644 tests/testdata/qgis_server/test_project_meters_at_scaledsymbols.qgs create mode 100644 tests/testdata/qgis_server/test_project_meters_at_scaledsymbols_2056.qgs diff --git a/tests/src/python/test_qgsserver_wms_getlegendgraphic.py b/tests/src/python/test_qgsserver_wms_getlegendgraphic.py index df033195b16..6488002a8f0 100644 --- a/tests/src/python/test_qgsserver_wms_getlegendgraphic.py +++ b/tests/src/python/test_qgsserver_wms_getlegendgraphic.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """QGIS Unit tests for QgsServer WMS GetLegendGraphic. From build dir, run: ctest -R PyQgsServerWMSGetLegendGraphic -V @@ -18,27 +19,31 @@ import os # Needed on Qt 5 so that the serialization of XML is consistent among all executions os.environ['QT_HASH_SEED'] = '1' +import re import json -import urllib.error -import urllib.parse import urllib.request +import urllib.parse +import urllib.error + +from qgis.testing import unittest +from qgis.PyQt.QtCore import QSize import osgeo.gdal # NOQA +from test_qgsserver_wms import TestQgsServerWMSTestBase from qgis.core import ( - QgsMarkerSymbol, QgsProject, + QgsMarkerSymbol, QgsRuleBasedRenderer, QgsVectorLayer, ) -from qgis.PyQt.QtCore import QSize + from qgis.server import ( QgsBufferServerRequest, QgsBufferServerResponse, QgsServer, + QgsServerRequest, ) -from qgis.testing import unittest -from test_qgsserver_wms import TestQgsServerWMSTestBase # Strip path and content length because path may vary RE_STRIP_UNCHECKABLE = br'MAP=[^"]+|Content-Length: \d+' @@ -63,10 +68,10 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): # 'HEIGHT': '20', # optional 'LAYER': 'testlayer%20èé', } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) h, r = self._execute_request(qs) - self.assertEqual(-1, h.find(b'Content-Type: text/xml; charset=utf-8'), f"Header: {h}\nResponse:\n{r}") - self.assertNotEqual(-1, h.find(b'Content-Type: image/png'), f"Header: {h}\nResponse:\n{r}") + self.assertEqual(-1, h.find(b'Content-Type: text/xml; charset=utf-8'), "Header: %s\nResponse:\n%s" % (h, r)) + self.assertNotEqual(-1, h.find(b'Content-Type: image/png'), "Header: %s\nResponse:\n%s" % (h, r)) def test_wms_GetLegendGraphic_LayerSpace(self): qs = "?" + "&".join(["%s=%s" % i for i in list({ @@ -185,7 +190,7 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): 'LAYERTITLE': 'TRUE', 'RULELABEL': 'TRUE' } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_test", 250, QSize(15, 15)) @@ -206,7 +211,7 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): 'ITEMFONTFAMILY': self.fontFamily, 'ITEMFONTSIZE': '20' } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_test", 250, QSize(15, 15)) @@ -223,7 +228,7 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): 'LAYERTITLE': 'FALSE', 'RULELABEL': 'FALSE' } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_test_layertitle_false", 250, QSize(15, 15)) @@ -244,7 +249,7 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): 'ITEMFONTFAMILY': self.fontFamily, 'RULELABEL': 'FALSE' } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_rulelabel_false", 250, QSize(15, 15)) @@ -264,7 +269,7 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): 'LAYERTITLE': 'FALSE', 'RULELABEL': 'TRUE' } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_rulelabel_true", 250, QSize(15, 15)) @@ -284,7 +289,7 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): 'ITEMFONTFAMILY': self.fontFamily, 'LAYERTITLE': 'FALSE' } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_rulelabel_notset", 250, QSize(15, 15)) @@ -299,7 +304,7 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): 'LAYERTITLE': 'FALSE', 'RULELABEL': 'AUTO' } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_rulelabel_auto", 250, QSize(15, 15)) @@ -316,7 +321,7 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): 'HEIGHT': '20', 'RULE': 'rule0', } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_rule0", 250, QSize(15, 15)) @@ -331,7 +336,7 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): 'HEIGHT': '20', 'RULE': 'rule1', } - qs = '?' + '&'.join([f"{k}={v}" for k, v in parms.items()]) + qs = '?' + '&'.join(["%s=%s" % (k, v) for k, v in parms.items()]) r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_rule1", 250, QSize(15, 15)) @@ -626,8 +631,8 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): }.items())]) h, r = self._execute_request(qs) - self.assertEqual(-1, h.find(b'Content-Type: text/xml; charset=utf-8'), f"Header: {h}\nResponse:\n{r}") - self.assertNotEqual(-1, h.find(b'Content-Type: image/png'), f"Header: {h}\nResponse:\n{r}") + self.assertEqual(-1, h.find(b'Content-Type: text/xml; charset=utf-8'), "Header: %s\nResponse:\n%s" % (h, r)) + self.assertNotEqual(-1, h.find(b'Content-Type: image/png'), "Header: %s\nResponse:\n%s" % (h, r)) def test_wms_GetLegendGraphic_wmsRootName(self): """Test an unreported issue when a wmsRootName short name is set in the service capabilities""" @@ -648,8 +653,8 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): }.items())]) h, r = self._execute_request(qs) - self.assertEqual(-1, h.find(b'Content-Type: text/xml; charset=utf-8'), f"Header: {h}\nResponse:\n{r}") - self.assertNotEqual(-1, h.find(b'Content-Type: image/png'), f"Header: {h}\nResponse:\n{r}") + self.assertEqual(-1, h.find(b'Content-Type: text/xml; charset=utf-8'), "Header: %s\nResponse:\n%s" % (h, r)) + self.assertNotEqual(-1, h.find(b'Content-Type: image/png'), "Header: %s\nResponse:\n%s" % (h, r)) # Then test with the wmsRootName short name: qs = "?" + "&".join(["%s=%s" % i for i in list({ @@ -667,8 +672,8 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): }.items())]) h, r = self._execute_request(qs) - self.assertEqual(-1, h.find(b'Content-Type: text/xml; charset=utf-8'), f"Header: {h}\nResponse:\n{r}") - self.assertNotEqual(-1, h.find(b'Content-Type: image/png'), f"Header: {h}\nResponse:\n{r}") + self.assertEqual(-1, h.find(b'Content-Type: text/xml; charset=utf-8'), "Header: %s\nResponse:\n%s" % (h, r)) + self.assertNotEqual(-1, h.find(b'Content-Type: image/png'), "Header: %s\nResponse:\n%s" % (h, r)) def test_wms_GetLegendGraphic_ScaleSymbol_Min(self): # 1:500000000 min @@ -816,6 +821,102 @@ class TestQgsServerWMSGetLegendGraphic(TestQgsServerWMSTestBase): r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetLegendGraphic_ScaleSymbol_DefaultScale_2056", max_size_diff=QSize(15, 15)) + def test_wms_GetLegendGraphic_MetersAtScaleSymbol_Scaled(self): + # meters at scale symbols on EPSG:4326 calculated with BBOX + qs = "?" + "&".join(["%s=%s" % i for i in list({ + "MAP": self.testdata_path + 'test_project_meters_at_scaledsymbols.qgs', + "SERVICE": "WMS", + "REQUEST": "GetLegendGraphic", + "LAYER": "testlayer", + "FORMAT": "image/png", + "SRCHEIGHT": "2550", + "SRCWIDTH": "3850", + "BBOX": "44.89945254864102964,8.20044117721021948,44.90400902275693085,8.20936038559772285", + "CRS": "EPSG:4326" + }.items())]) + + r, h = self._result(self._execute_request(qs)) + self._img_diff_error(r, h, "WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled", max_size_diff=QSize(15, 15)) + + def test_wms_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale(self): + # meters at scale symbols on EPSG:4326 calculated with Default Scale set in the projects configuration + qs = "?" + "&".join(["%s=%s" % i for i in list({ + "MAP": self.testdata_path + 'test_project_meters_at_scaledsymbols.qgs', + "SERVICE": "WMS", + "REQUEST": "GetLegendGraphic", + "LAYER": "testlayer", + "FORMAT": "image/png", + "CRS": "EPSG:4326" + }.items())]) + + r, h = self._result(self._execute_request(qs)) + self._img_diff_error(r, h, "WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale", max_size_diff=QSize(15, 15)) + + def test_wms_GetLegendGraphic_MetersAtScaleSymbol_Rule(self): + # meters at scale symbols on EPSG:4326 calculated with Default Scale set in the projects configuration and having a rule + qs = "?" + "&".join(["%s=%s" % i for i in list({ + "MAP": self.testdata_path + 'test_project_meters_at_scaledsymbols.qgs', + "SERVICE": "WMS", + "REQUEST": "GetLegendGraphic", + "LAYER": "testlayer", + "FORMAT": "image/png", + "CRS": "EPSG:4326", + "WIDTH": "50", + "HEIGHT": "50", + "RULE": "two" + }.items())]) + + r, h = self._result(self._execute_request(qs)) + self._img_diff_error(r, h, "WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule", max_size_diff=QSize(15, 15)) + + def test_wms_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056(self): + # meters at scale symbols on EPSG:2056 calculated with BBOX + qs = "?" + "&".join(["%s=%s" % i for i in list({ + "MAP": self.testdata_path + 'test_project_meters_at_scaledsymbols_2056.qgs', + "SERVICE": "WMS", + "REQUEST": "GetLegendGraphic", + "LAYER": "testlayer_2056", + "FORMAT": "image/png", + "SRCHEIGHT": "1100", + "SRCWIDTH": "1700", + "BBOX": "2662610.7,1268841.8,2663010.5,1269000.05", + "CRS": "EPSG:2056" + }.items())]) + + r, h = self._result(self._execute_request(qs)) + self._img_diff_error(r, h, "WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056", max_size_diff=QSize(15, 15)) + + def test_wms_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056(self): + # meters at scale symbols on EPSG:2056 calculated with Default Scale set in the projects configuration + qs = "?" + "&".join(["%s=%s" % i for i in list({ + "MAP": self.testdata_path + 'test_project_meters_at_scaledsymbols_2056.qgs', + "SERVICE": "WMS", + "REQUEST": "GetLegendGraphic", + "LAYER": "testlayer_2056", + "FORMAT": "image/png", + "CRS": "EPSG:2056" + }.items())]) + + r, h = self._result(self._execute_request(qs)) + self._img_diff_error(r, h, "WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056", max_size_diff=QSize(15, 15)) + + def test_wms_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056(self): + # meters at scale symbols on EPSG:2056 calculated with Default Scale set in the projects configuration and having a rule + qs = "?" + "&".join(["%s=%s" % i for i in list({ + "MAP": self.testdata_path + 'test_project_meters_at_scaledsymbols_2056.qgs', + "SERVICE": "WMS", + "REQUEST": "GetLegendGraphic", + "LAYER": "testlayer_2056", + "FORMAT": "image/png", + "CRS": "EPSG:2056", + "WIDTH": "50", + "HEIGHT": "50", + "RULE": "test" + }.items())]) + + r, h = self._result(self._execute_request(qs)) + self._img_diff_error(r, h, "WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056", max_size_diff=QSize(15, 15)) + def test_wms_GetLegendGraphic_LAYERFONTCOLOR(self): qs = "?" + "&".join(["%s=%s" % i for i in list({ "MAP": urllib.parse.quote(self.projectPath), diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale.png new file mode 100644 index 0000000000000000000000000000000000000000..18ad279123c466eb96ab30e93f1fbf1adab67fa2 GIT binary patch literal 4676 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 literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale.png new file mode 100644 index 0000000000000000000000000000000000000000..18ad279123c466eb96ab30e93f1fbf1adab67fa2 GIT binary patch literal 4676 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 literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056.png new file mode 100644 index 0000000000000000000000000000000000000000..f47310169ad72d661a09ee2a8d72ae658c5e9569 GIT binary patch literal 5113 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 E0~Oz|q5uE@ literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_DefaultScale_2056.png new file mode 100644 index 0000000000000000000000000000000000000000..f47310169ad72d661a09ee2a8d72ae658c5e9569 GIT binary patch literal 5113 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 E0~Oz|q5uE@ literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule.png new file mode 100644 index 0000000000000000000000000000000000000000..43dea4711649df63476c1f53cf858ee9c9a26186 GIT binary patch literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AoCO|{#X$N0Ak6rsYf~o!1Cx@c zi(^PcYx1A}|LqSyVD@2t%kU=QO5~D;!1ResZgX9^Bud3JQ3Mp;tdTa)v#I>l!sqA6 zrn5uEY)$<3ii2;m&EIF9;N1J~!{6KM_dio>licb0>la%|ftd2OYnfg#61T6bZ}U3i zmGoxKnI0YywSV4y-(-A$jm(`@(zn|M&CRy= zo!dHZo6)32GAa8W6bUmkJ1>#^|61BT-FNBY&1U)cPW<_~u+_-C&X)7qAL;AsYQDS> zoI7W0)=MQ}Nw=geFFXIoZckIqopac(kdV00b$Pme{IANL zKK;`a9xPj5|JtnHqVAQ<+c~X5QI8%ydYSq1GGEPs^~lS>{R`th*ZViygL84cV3glMsWatDnm{r-UW| D#XKSE literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule.png new file mode 100644 index 0000000000000000000000000000000000000000..43dea4711649df63476c1f53cf858ee9c9a26186 GIT binary patch literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AoCO|{#X$N0Ak6rsYf~o!1Cx@c zi(^PcYx1A}|LqSyVD@2t%kU=QO5~D;!1ResZgX9^Bud3JQ3Mp;tdTa)v#I>l!sqA6 zrn5uEY)$<3ii2;m&EIF9;N1J~!{6KM_dio>licb0>la%|ftd2OYnfg#61T6bZ}U3i zmGoxKnI0YywSV4y-(-A$jm(`@(zn|M&CRy= zo!dHZo6)32GAa8W6bUmkJ1>#^|61BT-FNBY&1U)cPW<_~u+_-C&X)7qAL;AsYQDS> zoI7W0)=MQ}Nw=geFFXIoZckIqopac(kdV00b$Pme{IANL zKK;`a9xPj5|JtnHqVAQ<+c~X5QI8%ydYSq1GGEPs^~lS>{R`th*ZViygL84cV3glMsWatDnm{r-UW| D#XKSE literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056.png new file mode 100644 index 0000000000000000000000000000000000000000..1e726177670dcd6f5d97a9884d94df9871e38c7c GIT binary patch literal 985 zcmV;~119{5P)b!3{%G}(l%f55DKbh-D3mmX%+wf`XjX_+4{6-Z&6#dX@AUSNDbdKC zyL+pLeV)(v$LF4V&ON_-2!>(c{{#JN0sFYLaByki;L^gurGvTH9pq>H7*VkVvmC9tY;NW0Bw1_`LiY zGC58&dXvClB82X9-}H_oB&<(NN{@+&`5RhVt+x1Vp>i=D7%;jfR_x^=usdu(M?ceA zKT-3IqmrZfMGA$2M=edkp|{;H_HGe|1-Uy|sP(nAtn%ABb=u)0C%D%#o6Sjy@ke)% zsz@P=at&>^szy;&buE`#yLbF_#aMk~D?;qI`HU7#(-Gle zEq7(CYfUpi(K|I?+h4w7U18>dQj+5DT<~+=2>=3o=M?Uqzb!ADb%iOd;*7_8ZaN3aPMCA0?5f#pW~p`VOu_zKj-7t6FV~}_ zSi>TSdU|>Uj4m!p%(W5#K$d#m+wS(Ep&{I$KoJz^A?REY!pm#{K-YV#jqnQz3B}VA zAluedLgLB(Lp2M`ME!FrEqxD6`3OQd>1pup}MZ+cvH-+>D6CXCy2oTZt;S28a zLf&5XTLTV}N=S;rn=rI=A#bbdC(0#ayad0?~F!jlsKG__ko!((w%NS(N$ zxr4{$)!YH<^{Kcil#-H4nRq#;0bqD^k`#NZR4UvcB1v-P>f~z=czKVdw=Ef2+gSvs zdiltR(8uNeVv^v{>Embm_~pqb4b3dFQ%!S8$%XR!lN>q$z|9(>_MLJ7l z**&M`Omo#D56RBkw#S(wcJ3f5%1b}Jdz2YZ2QI=p06O1&t8Nk|r0&Yd+~kateJucJ zYim8FIi`@&yK~%qyk_rwK2x?!x2;y2&&i^TN~O|CCjj^kssuUBwDM(M00000NkvXX Hu0mjfo|)Xr literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Rule_2056.png new file mode 100644 index 0000000000000000000000000000000000000000..1e726177670dcd6f5d97a9884d94df9871e38c7c GIT binary patch literal 985 zcmV;~119{5P)b!3{%G}(l%f55DKbh-D3mmX%+wf`XjX_+4{6-Z&6#dX@AUSNDbdKC zyL+pLeV)(v$LF4V&ON_-2!>(c{{#JN0sFYLaByki;L^gurGvTH9pq>H7*VkVvmC9tY;NW0Bw1_`LiY zGC58&dXvClB82X9-}H_oB&<(NN{@+&`5RhVt+x1Vp>i=D7%;jfR_x^=usdu(M?ceA zKT-3IqmrZfMGA$2M=edkp|{;H_HGe|1-Uy|sP(nAtn%ABb=u)0C%D%#o6Sjy@ke)% zsz@P=at&>^szy;&buE`#yLbF_#aMk~D?;qI`HU7#(-Gle zEq7(CYfUpi(K|I?+h4w7U18>dQj+5DT<~+=2>=3o=M?Uqzb!ADb%iOd;*7_8ZaN3aPMCA0?5f#pW~p`VOu_zKj-7t6FV~}_ zSi>TSdU|>Uj4m!p%(W5#K$d#m+wS(Ep&{I$KoJz^A?REY!pm#{K-YV#jqnQz3B}VA zAluedLgLB(Lp2M`ME!FrEqxD6`3OQd>1pup}MZ+cvH-+>D6CXCy2oTZt;S28a zLf&5XTLTV}N=S;rn=rI=A#bbdC(0#ayad0?~F!jlsKG__ko!((w%NS(N$ zxr4{$)!YH<^{Kcil#-H4nRq#;0bqD^k`#NZR4UvcB1v-P>f~z=czKVdw=Ef2+gSvs zdiltR(8uNeVv^v{>Embm_~pqb4b3dFQ%!S8$%XR!lN>q$z|9(>_MLJ7l z**&M`Omo#D56RBkw#S(wcJ3f5%1b}Jdz2YZ2QI=p06O1&t8Nk|r0&Yd+~kateJucJ zYim8FIi`@&yK~%qyk_rwK2x?!x2;y2&&i^TN~O|CCjj^kssuUBwDM(M00000NkvXX Hu0mjfo|)Xr literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled.png new file mode 100644 index 0000000000000000000000000000000000000000..835f2b2854bfaa1e07bbc5cd2825d4de605148a2 GIT binary patch literal 19432 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
dSFL( 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 literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled.png new file mode 100644 index 0000000000000000000000000000000000000000..835f2b2854bfaa1e07bbc5cd2825d4de605148a2 GIT binary patch literal 19432 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
dSFL( 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 literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056/variant1/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056.png new file mode 100644 index 0000000000000000000000000000000000000000..63e9732e56cfe68189c2a1288349f16afe51df81 GIT binary patch literal 3510 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 literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056/variant2/WMS_GetLegendGraphic_MetersAtScaleSymbol_Scaled_2056.png new file mode 100644 index 0000000000000000000000000000000000000000..63e9732e56cfe68189c2a1288349f16afe51df81 GIT binary patch literal 3510 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 literal 0 HcmV?d00001 diff --git a/tests/testdata/qgis_server/test_project_meters_at_scaledsymbols.qgs b/tests/testdata/qgis_server/test_project_meters_at_scaledsymbols.qgs new file mode 100644 index 00000000000..fc4b84865c0 --- /dev/null +++ b/tests/testdata/qgis_server/test_project_meters_at_scaledsymbols.qgs @@ -0,0 +1,1003 @@ + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + testlayer_91fbc4ae_de21_417e_b7df_7e0e792194fb + + + + + + + + + + + degrees + + 8.20262254434610583 + 44.89945254864102964 + 8.20717901846183651 + 44.90400902275693085 + + 0 + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + 0 + + + + + + + + + + Beschriftungen_655c47a0_4f15_46e2_82b9_1a64b7ece030 + + + + + + + + + + 0 + 0 + + + + + false + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + false + + + + + + + 1 + 1 + 1 + 0 + + + + 1 + 0 + + + + + + 8.20345930703634352 + 44.90139483904469131 + 8.20354699399348775 + 44.90148252600183554 + + + 8.20345930703634352 + 44.90139483904469131 + 8.20354699399348775 + 44.90148252600183554 + + testlayer_91fbc4ae_de21_417e_b7df_7e0e792194fb + ./testlayer.shp + + + + testlayer + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + + + + + + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + + ogr + + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + + + + "id" + + + + + + + + + + 2 + + + 255 + 255 + 255 + 255 + 0 + 255 + 255 + + + false + + + + + + NONE + + + m2 + meters + + + 50 + 5 + 16 + 30 + 2.5 + false + false + false + 0 + 0 + false + false + true + 0 + 255,0,0,255 + + + false + + + true + 2 + MU + + + + DCIM + + + false + + 1 + + + + + + + + + + + None + false + false + + + + + + 0.0001 + false + conditions unknown + 90 + + + + 1 + + 8 + + false + + false + + 0 + + false + + + + + + + + false + + + + + false + + 5000 + + + + false + + + + + + 10 + + 1024 + singleLayer + 0 + + online + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + David + 2019-02-25T07:28:13 + + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + + + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + diff --git a/tests/testdata/qgis_server/test_project_meters_at_scaledsymbols_2056.qgs b/tests/testdata/qgis_server/test_project_meters_at_scaledsymbols_2056.qgs new file mode 100644 index 00000000000..0fe4bd7a15e --- /dev/null +++ b/tests/testdata/qgis_server/test_project_meters_at_scaledsymbols_2056.qgs @@ -0,0 +1,890 @@ + + + + + + + + + PROJCRS["CH1903+ / LV95",BASEGEOGCRS["CH1903+",DATUM["CH1903+",ELLIPSOID["Bessel 1841",6377397.155,299.1528128,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4150]],CONVERSION["Swiss Oblique Mercator 1995",METHOD["Hotine Oblique Mercator (variant B)",ID["EPSG",9815]],PARAMETER["Latitude of projection centre",46.9524055555556,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8811]],PARAMETER["Longitude of projection centre",7.43958333333333,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8812]],PARAMETER["Azimuth of initial line",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8813]],PARAMETER["Angle from Rectified to Skew Grid",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8814]],PARAMETER["Scale factor on initial line",1,SCALEUNIT["unity",1],ID["EPSG",8815]],PARAMETER["Easting at projection centre",2600000,LENGTHUNIT["metre",1],ID["EPSG",8816]],PARAMETER["Northing at projection centre",1200000,LENGTHUNIT["metre",1],ID["EPSG",8817]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],AREA["Liechtenstein; Switzerland."],BBOX[45.82,5.96,47.81,10.49]],ID["EPSG",2056]] + +proj=somerc +lat_0=46.9524055555556 +lon_0=7.43958333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs + 47 + 2056 + EPSG:2056 + CH1903+ / LV95 + somerc + EPSG:7004 + false + + + + + + + + + + + + testlayer_2056_0a0d85af_384f_43a8_aafd_ce618f07606c + + + + + + + + + + + meters + + 2662688.59528037672862411 + 1268906.44275068677961826 + 2663017.47236404521390796 + 1269115.71788927260786295 + + 0 + + + PROJCRS["CH1903+ / LV95",BASEGEOGCRS["CH1903+",DATUM["CH1903+",ELLIPSOID["Bessel 1841",6377397.155,299.1528128,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4150]],CONVERSION["Swiss Oblique Mercator 1995",METHOD["Hotine Oblique Mercator (variant B)",ID["EPSG",9815]],PARAMETER["Latitude of projection centre",46.9524055555556,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8811]],PARAMETER["Longitude of projection centre",7.43958333333333,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8812]],PARAMETER["Azimuth of initial line",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8813]],PARAMETER["Angle from Rectified to Skew Grid",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8814]],PARAMETER["Scale factor on initial line",1,SCALEUNIT["unity",1],ID["EPSG",8815]],PARAMETER["Easting at projection centre",2600000,LENGTHUNIT["metre",1],ID["EPSG",8816]],PARAMETER["Northing at projection centre",1200000,LENGTHUNIT["metre",1],ID["EPSG",8817]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],AREA["Liechtenstein; Switzerland."],BBOX[45.82,5.96,47.81,10.49]],ID["EPSG",2056]] + +proj=somerc +lat_0=46.9524055555556 +lon_0=7.43958333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs + 47 + 2056 + EPSG:2056 + CH1903+ / LV95 + somerc + EPSG:7004 + false + + + 0 + + + + + + + + + + Beschriftungen_554a318e_171a_47fd_9858_924d3d726ea6 + + + + + + + + + + 0 + 0 + + + + + false + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + false + + + + + + + 1 + 1 + 1 + 0 + + + + 1 + 0 + + + + + + 2662810.22610628698021173 + 1268958.9145528266672045 + 2662810.22610628698021173 + 1268958.9145528266672045 + + + 8.2733168707200484 + 47.56833412279832629 + 8.2733168707200484 + 47.56833412279832629 + + testlayer_2056_0a0d85af_384f_43a8_aafd_ce618f07606c + ./testlayer_2056.shp + + + + testlayer_2056 + + + PROJCRS["CH1903+ / LV95",BASEGEOGCRS["CH1903+",DATUM["CH1903+",ELLIPSOID["Bessel 1841",6377397.155,299.1528128,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4150]],CONVERSION["Swiss Oblique Mercator 1995",METHOD["Hotine Oblique Mercator (variant B)",ID["EPSG",9815]],PARAMETER["Latitude of projection centre",46.9524055555556,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8811]],PARAMETER["Longitude of projection centre",7.43958333333333,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8812]],PARAMETER["Azimuth of initial line",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8813]],PARAMETER["Angle from Rectified to Skew Grid",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8814]],PARAMETER["Scale factor on initial line",1,SCALEUNIT["unity",1],ID["EPSG",8815]],PARAMETER["Easting at projection centre",2600000,LENGTHUNIT["metre",1],ID["EPSG",8816]],PARAMETER["Northing at projection centre",1200000,LENGTHUNIT["metre",1],ID["EPSG",8817]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],AREA["Liechtenstein; Switzerland."],BBOX[45.82,5.96,47.81,10.49]],ID["EPSG",2056]] + +proj=somerc +lat_0=46.9524055555556 +lon_0=7.43958333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs + 47 + 2056 + EPSG:2056 + CH1903+ / LV95 + somerc + EPSG:7004 + false + + + + + + + dataset + + + + + + + + + + + + + + + + + + + +proj=somerc +lat_0=46.9524055555556 +lon_0=7.43958333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs + 0 + 0 + + + + + false + + + + + + + + + + + + + ogr + + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + "id" + + + + + + + + + + 2 + + + 255 + 255 + 255 + 255 + 0 + 255 + 255 + + + false + + + + + + NONE + + + m2 + meters + + + 50 + 5 + 16 + 30 + 2.5 + false + false + false + 0 + 0 + false + false + true + 0 + 255,0,0,255 + + + false + + + true + 2 + MU + + false + + 1 + + + + + + + + + + + None + false + false + + + + + + 1 + false + conditions unknown + 90 + + + + 1 + + 8 + + false + + false + + 0 + + false + + + + + + + + false + + + + + false + + 5000 + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + David + 2019-04-11T08:52:22 + + + + + + + + + + PROJCRS["CH1903+ / LV95",BASEGEOGCRS["CH1903+",DATUM["CH1903+",ELLIPSOID["Bessel 1841",6377397.155,299.1528128,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4150]],CONVERSION["Swiss Oblique Mercator 1995",METHOD["Hotine Oblique Mercator (variant B)",ID["EPSG",9815]],PARAMETER["Latitude of projection centre",46.9524055555556,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8811]],PARAMETER["Longitude of projection centre",7.43958333333333,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8812]],PARAMETER["Azimuth of initial line",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8813]],PARAMETER["Angle from Rectified to Skew Grid",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8814]],PARAMETER["Scale factor on initial line",1,SCALEUNIT["unity",1],ID["EPSG",8815]],PARAMETER["Easting at projection centre",2600000,LENGTHUNIT["metre",1],ID["EPSG",8816]],PARAMETER["Northing at projection centre",1200000,LENGTHUNIT["metre",1],ID["EPSG",8817]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],AREA["Liechtenstein; Switzerland."],BBOX[45.82,5.96,47.81,10.49]],ID["EPSG",2056]] + +proj=somerc +lat_0=46.9524055555556 +lon_0=7.43958333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs + 47 + 2056 + EPSG:2056 + CH1903+ / LV95 + somerc + EPSG:7004 + false + + + + + + + + + + + + + + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + +