Browse Source

Rend le test des types de géométries plus explicite lors d'erreurs

omassot 6 years ago
parent
commit
8a4ab1dfaa
3 changed files with 9 additions and 10 deletions
  1. 4 3
      core/mncheck.py
  2. 2 3
      schemas/mn1_rec.py
  3. 3 4
      schemas/mn2_rec.py

+ 4 - 3
core/mncheck.py

@@ -52,9 +52,6 @@ class QgsModel():
     GEOM_MULTILINE = 5
     GEOM_MULTIPOLYGON = 6
     
-    GEOM_NAMES = {0: "AUCUN", 1: "POINT", 2: "LIGNE", 3: "POLYGONE", 
-                  4: "MULTI-POINT", 5:"MULTI-LIGNE", 6:"MULTI-POLYGONE"}
-    
     layername = ""
     required = True
     geom_type = 0
@@ -98,6 +95,10 @@ class QgsModel():
         
     def get_geom_type(self):
         return QgsWkbTypes.singleType(self._feature.geometry().wkbType())
+    
+    @classmethod
+    def get_geom_name(cls, wkb):
+        return QgsWkbTypes.displayString(wkb)
         
     def get_bounding_box(self):
         bb = self._feature.geometry().boundingBox()

+ 2 - 3
schemas/mn1_rec.py

@@ -324,9 +324,8 @@ class Mn1Checker(BaseChecker):
             for item in self.dataset[model]:
                 item_geom_type = item.get_geom_type()
                 if item_geom_type != model.geom_type:
-                    excected = QgsModel.GEOM_NAMES.get(model.geom_type, "(inconnue)")
-                    found = QgsModel.GEOM_NAMES.get(item_geom_type, "(inconnue)")
-                    self.log_error(f"Type de géométrie invalide (attendu: {excected}, trouvé: {found})", item=item)
+                    expected, found = model.get_geom_name(model.geom_type), model.get_geom_name(item_geom_type)
+                    self.log_error(f"Type de géométrie invalide (attendu: {expected}, trouvé: {found})", item=item)
                     
     def test_bounding_box(self):
         """ Contrôle des emprises 

+ 3 - 4
schemas/mn2_rec.py

@@ -344,10 +344,9 @@ class Mn2Checker(BaseChecker):
             for item in self.dataset[model]:
                 item_geom_type = item.get_geom_type()
                 if item_geom_type != model.geom_type:
-                    excected = QgsModel.GEOM_NAMES.get(model.geom_type, "(inconnue)")
-                    found = QgsModel.GEOM_NAMES.get(item_geom_type, "(inconnue)")
-                    self.log_error(f"Type de géométrie invalide (attendu: {excected}, trouvé: {found})", item=item)
-
+                    expected, found = model.get_geom_name(model.geom_type), model.get_geom_name(item_geom_type)
+                    self.log_error(f"Type de géométrie invalide (attendu: {expected}, trouvé: {found})", item=item)
+                    
     def test_bounding_box(self):
         """ Contrôle des emprises 
         Vérifie que les objets sont dans le périmètre attendu