[Gfoss] Verifica topologica con PostGIS

Massimiliano Moraca massimilianomoraca a gmail.com
Dom 4 Feb 2018 08:51:33 CET


Buongiorno e buona domenica a tutti. Sto cercando di effettuare un clip tra
due vettori poligonali in PostGIS. Ho usato questa sintassi:

/SELECT
ST_Intersection(a1.geometry, a2.geometry) as geometry,
a2.class_new as cuas_code,
a2.label as cuas_descr
FROM ambito as a1, cuas09_select as a2
WHERE ST_Intersects(a1.geometry, a2.geometry);/

E mi è stato restituito questo messaggio:

/ERROR: ERRORE: Error performing intersection: TopologyException: Input geom
1 is invalid: Ring Self-intersection at or near point 459149.46875 4514388.5
at 459149.46875 4514388.5

SQL state: XX000/

Mi è chiaro che devo fare una verifica topologica del vettore a2, a1 è un
rettangolo, ma non ricordo quale è la sintassi da usare per verificare se
nel vettore ci sono gap e overlay.

Qualcuno lo sa?

Ricordo che per validare le geometrie si usa ST_IsValid e ST_MakeValid ma ho
il vuoto per gap e overlay...

Cercando in giro ho applicato questo:

/select ogc_fid, ST_IsValidReason(geometry) from cuas09_select where not
ST_IsValid(geometry);/

Mi ha restituito un elenco di coordinate "problematiche" (es. Ring
Self-intersection[459149.46875 4514388.5]) che ho convertito in tabella,
esportato in csv e reimportato in QGIS come punti. Ho notato però che
nemmeno se vado oltre al 200:1 si notano buchi...

-----
Ingegnere, consulente GIS e ciclista urbano
--
Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/


Maggiori informazioni sulla lista Gfoss