>Ho un layer composto da linee che spesso si intersecano tra loro, io vorrei
>che ad ogni intersezione le linee avessero un nodo. Con PostGIS sono
>riuscito ad estrarre tutte le intersezioni ma non so poi come aggiungerle
>alla linea nella giusta posizione, con GRASS invece ho provato con [v.net](http://v.net) ma
In Postgis il modo esiste.
Feci anche io delle prove al riguardo con poligoni archi e nodi.
Comunque per mettere a punto il tutto ci vuole del tempo, tanta pazienza e svariate prove.
Per cui se hai fretta ti conviene passare da altro ambiente
Comunque:
Si tratta di effettuare una serie di stringhe sql basate su varie nidificazioni di subquery e appoggiare i risultati su delle tabelle temporanee pe rtiutilizzarli
(poi alla fine cancelli e rimuovi le tabelle temporanee)
A grandissime linee:
selezioni le linee che si intersecano con un filtro usando
ST_Intersects(a.geom,b.geom)=true
Le tagli con
ST_Multi(ST_Intersection(ST_Boundary(a.geom),b.geom)) as geom
Le butti in una tabella con geometria MultiLine.
Ci aggiungi un progressivo preso da una sequence per fare contento quell’impiastro di qgis.
Per i nodi
li inserisci in una tabella di punti in cui il primo e l’ultimo li identifichi trmaite una stringa wkt che crei al volo e usi per definire la geometria che popola la tabella dei punti.
La stringa wkt la ricavi con un costrutto sql di questo tipo:
ST_X(ST_PointN(b.geom,1)) || ’ ’ || ST_Y(ST_PointN(b.geom,1)) as coordinata_partenza
ST_X(ST_PointN(b.geom,ST_NPoints(b.geom))) || ’ ’ || ST_Y(ST_PointN(b.geom,ST_NPoints(b.geom))) as coordinata_finale
Ovviamente e’ il festival delle query nidificate e con qualche tabella temporanea di appoggio su cui inserisci i dati per poi riprenderli con la successsiva query.
Ciao,