[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