trigger per linee snappate ai punti e calcolo lunghezze

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

trigger per linee snappate ai punti e calcolo lunghezze

Falz
Ciao a tutti,
per chi interessa, condivido un trigger per snappare i vertici delle linee ai punti e successivamente calcolo delle lunghezze. Caso tipico di un impianto civile...
Avendo due tabelle geometriche, tubi(linestring) e pozzetti(point).

create trigger insert_snap_and_calc_length after insert on tubi
begin
update tubi
set
geom= st_snap(tubi.geom, (select st_collect(geom) as geom from pozzetti), 0.3),
lunghezza= st_length(geom)
where rowid=new.rowid;
end;

create trigger update_snap_and_calc_length after update of geom on tubi
begin
update tubi
set
geom= st_snap(tubi.geom, (select st_collect(geom) as geom from pozzetti), 0.3),
lunghezza= st_length(geom)
where rowid=new.rowid;
end;
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017
Reply | Threaded
Open this post in threaded view
|

Re: trigger per linee snappate ai punti e calcolo lunghezze

Amedeo Fadini
Grazie mille!

un approccio interessante che consente di ottenere un livello
topologicamente corretto, come mi piacerebbe che lavorassero così
tutti coloro che si occupano di sottoservizi!

Amedeo

Il 1 giugno 2018 11:28,  <[hidden email]> ha scritto:

> Ciao a tutti,
> per chi interessa, condivido un trigger per snappare i vertici delle linee ai punti e successivamente calcolo delle lunghezze. Caso tipico di un impianto civile...
> Avendo due tabelle geometriche, tubi(linestring) e pozzetti(point).
>
> create trigger insert_snap_and_calc_length after insert on tubi
> begin
> update tubi
> set
> geom= st_snap(tubi.geom, (select st_collect(geom) as geom from pozzetti), 0.3),
> lunghezza= st_length(geom)
> where rowid=new.rowid;
> end;
>
> create trigger update_snap_and_calc_length after update of geom on tubi
> begin
> update tubi
> set
> geom= st_snap(tubi.geom, (select st_collect(geom) as geom from pozzetti), 0.3),
> lunghezza= st_length(geom)
> where rowid=new.rowid;
> end;
> _______________________________________________
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
> 796 iscritti al 28/12/2017
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017