|
|
@@ -470,12 +470,15 @@ class Mn1Checker(BaseChecker):
|
|
|
cable_points[-1].distanceSquared(equip_a_point) <= TOLERANCE))):
|
|
|
|
|
|
self.log_error("Pas d'équipement aux coordonnées attendues", item=cable)
|
|
|
-
|
|
|
+
|
|
|
def test_tranchee_artere(self):
|
|
|
""" Topologie: Tranchées / Artères
|
|
|
Compare la géométrie des tranchées à celle des artères """
|
|
|
|
|
|
- arteres_full_buffer = QgsGeometry().unaryUnion([a.geom for a in self.arteres]).buffer(TOLERANCE, 100)
|
|
|
+ arteres_full_buffer = Artere.full_buffer(TOLERANCE)
|
|
|
+
|
|
|
+ if not arteres_full_buffer.isGeosValid():
|
|
|
+ raise ValueError("Buffer: géométrie invalide")
|
|
|
|
|
|
for tranchee in self.tranchees:
|
|
|
if not arteres_full_buffer.contains(tranchee.geom):
|
|
|
@@ -485,17 +488,27 @@ class Mn1Checker(BaseChecker):
|
|
|
""" Topologie: Cables / Artères
|
|
|
Compare la géométrie des cables à celle des artères """
|
|
|
|
|
|
- arteres_full_buffer = QgsGeometry().unaryUnion([a.geom for a in self.arteres]).buffer(TOLERANCE, 100)
|
|
|
+ # Vérifie que chaque cable a au moins une artère (sauf si commentaire contient 'baguette')
|
|
|
+ arteres_full_buffer = Artere.full_buffer(TOLERANCE)
|
|
|
+
|
|
|
+ if not arteres_full_buffer.isGeosValid():
|
|
|
+ raise ValueError("Buffer: géométrie invalide")
|
|
|
|
|
|
- # Verifie que chaque cable a au moins une artère (sauf si commentaire contient 'baguette')
|
|
|
for cable in self.cables:
|
|
|
if "baguette" in cable.CA_COMMENT.lower() or not cable.is_geometry_valid():
|
|
|
continue
|
|
|
if not arteres_full_buffer.contains(cable.geom):
|
|
|
self.log_error("Cable ou portion de cable sans artère", item=cable)
|
|
|
|
|
|
- # Verifie que chaque artère a au moins un cable (sauf si commentaire contient un de ces mots 'racco client adductio attente bus 'sans cable'')
|
|
|
- cables_full_buffer = QgsGeometry().unaryUnion([c.geom for c in self.cables]).buffer(TOLERANCE, 100)
|
|
|
+ def test_artere_cable(self):
|
|
|
+ """ Topologie: Artères / Cables
|
|
|
+ Compare la géométrie des artères à celle des cables """
|
|
|
+
|
|
|
+ # Vérifie que chaque artère a au moins un cable (sauf si commentaire contient un de ces mots 'racco client adductio attente bus 'sans cable'')
|
|
|
+ cables_full_buffer = Cable.full_buffer(TOLERANCE)
|
|
|
+
|
|
|
+ if not cables_full_buffer.isGeosValid():
|
|
|
+ raise ValueError("Buffer: géométrie invalide")
|
|
|
|
|
|
for artere in self.arteres:
|
|
|
if any(x in artere.AR_COMMENT.lower() for x in ['racco','client','adductio','attente','bus','sans cable']):
|