Voilà qui est corrigé.
Pour plus de détail, qui nous servira à nous par la suite pour nous en rappeler et comprendre :
l'éditeur de polygone du site permet, semble-t-il, de générer des polygones invalides au sens PostGIS une fois sauvegardé sur le site, ce polygone invalide faisait planter la partie exportation (calcul d'imbrication des massifs dans les zones) style :
Alpes -> Bauges, Belledonne
Pyrénnées -> Bigorre
Je viens de corriger les 4 polygones qui étaient dans ce cas (Bigorre, Alpes cotiennes, réserve biologique de chépukoi en allemagne, et une autre en vanoise) mais le problème pourrait se reproduire, je viens donc de forcer une contrainte sur la table interdisant les géométries invalides.
ALTER TABLE polygones ADD CONSTRAINT enforce_valid_geom CHECK (st_isvalid(geom));
Le dommage collatéral de ça, c'est que si un de nos modérateurs modifie un massif et ajoute "par erreur" une forme de 8 (appelé "auto-intersection" dans le langage postgis) genre :
- 9ZVRE.png (8.88 Kio) Vu 8062 fois
Alors quand il va sauvegarder, ça ne va pas marcher (sans mot dire).
Soit on accepte cette contrainte, soit on peut forcer PG, à l'ajout, de rendre la forme valide, au risque qu'il décide de carrément supprimer la protubérance qui gêne...
( fonction st_makevalid )
Voilà qui est corrigé.
Pour plus de détail, qui nous servira à nous par la suite pour nous en rappeler et comprendre :
l'éditeur de polygone du site permet, semble-t-il, de générer des polygones invalides au sens PostGIS une fois sauvegardé sur le site, ce polygone invalide faisait planter la partie exportation (calcul d'imbrication des massifs dans les zones) style :
Alpes -> Bauges, Belledonne
Pyrénnées -> Bigorre
Je viens de corriger les 4 polygones qui étaient dans ce cas (Bigorre, Alpes cotiennes, réserve biologique de chépukoi en allemagne, et une autre en vanoise) mais le problème pourrait se reproduire, je viens donc de forcer une contrainte sur la table interdisant les géométries invalides.
ALTER TABLE polygones ADD CONSTRAINT enforce_valid_geom CHECK (st_isvalid(geom));
Le dommage collatéral de ça, c'est que si un de nos modérateurs modifie un massif et ajoute "par erreur" une forme de 8 (appelé "auto-intersection" dans le langage postgis) genre : [attachment=0]9ZVRE.png[/attachment]
Alors quand il va sauvegarder, ça ne va pas marcher (sans mot dire).
Soit on accepte cette contrainte, soit on peut forcer PG, à l'ajout, de rendre la forme valide, au risque qu'il décide de carrément supprimer la protubérance qui gêne...
( fonction st_makevalid )