Ceci fait suite à la question précédente . Vous verrez que je suis un nouvel utilisateur de PostGIS.
J'ai examiné la validité de la topologie dans mes données et j'ai trouvé environ 1700 problèmes de topologie dans l'ensemble de données de couverture terrestre (polygone). Ce sont tous des "Ring Self_intersection".
En utilisant quelques informations utiles dans cette présentation de Paul Ramsay (page 20), j'ai tenté de mettre mes données en mémoire tampon en conséquence:
UPDATE schema.data SET the_geom = buffer (the_geom, 0.0) WHERE isvalid (the_geom) = false et isvalid (buffer (the_geom, 0.0)) = true;
Mais je reçois la réponse:
AVIS: auto-intersection en anneau au point ou à proximité (modifié) ERREUR: une nouvelle ligne pour la relation "sgm_buffer" viole la contrainte de vérification "enforce_geotype_the_geom"
********** Erreur **********
ERREUR: une nouvelle ligne pour la relation "sgm_buffer" viole la contrainte de vérification "enforce_geotype_the_geom" État SQL: 23514
J'ai aussi essayé juste:
UPDATE csgn.sgm_buffer SET the_geom = buffer (the_geom, 0.0)
et obtenir:
ERREUR: une nouvelle ligne pour la relation "sgm_buffer" viole la contrainte de vérification "enforce_geotype_the_geom"
********** Erreur **********
ERREUR: une nouvelle ligne pour la relation "sgm_buffer" viole la contrainte de vérification "enforce_geotype_the_geom" État SQL: 23514
Dois-je donc supposer que cette technique de tampon ne fonctionnera pas sur mes problèmes? Ou est-ce que je fais quelque chose de mal?
M. Ramsay poursuit ensuite dans le même document pour suggérer une technique supplémentaire pour traiter les polygones "figure de 8". Je ne comprends pas entièrement comment écrire cela en entier dans le code (ou ce qu'il fait et si cela m'aidera):
SELECT ST_BuildArea (ST_Union ('LINESTRING EMPTY', ST_ExteriorRing ('POLYGON ((...))' '
Alors ... quelqu'un peut-il aider? Cela s'avère un vrai cauchemar avec mes délais serrés et mes compétences limitées dans PostGIS.
ST_Multi()
pour forcer tous les polygones à être MULTIPOLYGON
s (ceci est une hypothèse)