Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Rajouter un contrôle ST_IsValid #438

Closed
bouttier opened this issue Mar 13, 2023 · 3 comments
Closed

Rajouter un contrôle ST_IsValid #438

bouttier opened this issue Mar 13, 2023 · 3 comments
Labels
bug Something isn't working

Comments

@bouttier
Copy link
Contributor

Une géométrie incorrecte peut amener à faire planter le trigger de peuplement de la table cor_area_synthese lors de l’import dans la Synthèse :

INSERT INTO gn_synthese.cor_area_synthese […] JOIN ref_geo.l_areas a ON public.ST_INTERSECTS(updated_rows.the_geom_local, a.geom)
(psycopg2.errors.InternalError_) GEOSIntersects: TopologyException: side location conflict at […]

Cette erreur peut être à priori empêchée en vérifiant préalablement la validité des géométries ce qui peut être fait au moyen de la fonction ST_IsValid.

@bouttier bouttier added the bug Something isn't working label Mar 13, 2023
@DonovanMaillard
Copy link
Collaborator

A voir si on peut pas ajouter st_makevalid qui permet dans certains cas de corriger les géométries invalides ?

@gildeluermoz
Copy link

Pour avoir éventuellement des infos sur l'invalidité, il existe aussi
https://postgis.net/docs/ST_IsValidReason.html

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Aug 23, 2023

Contrôle ré-implémenté dans la version 2.2.0.
On ne contrôle que la validité de la géométrie avec ST_IsValid.

On n'essaie pas d'appliquer de correction avec ST_makevalid. A voir en évolution si c'est pertinent de le faire ?

Et on ne récupère pas dynamiquement la raison d'invalidité au niveau du message d'erreur car ça aurait nécessité de mettre en place un mécanisme spécifique de message d'erreur dynamique pour ce contrôle. A voir en éventuelle évolution.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants