[Gfoss] sql polilinee e indirizzi da polinee osm
pigreco
pigrecoinfinito a gmail.com
Gio 7 Giu 2018 22:00:05 CEST
falcerisimone a inwind.it wrote
> Ciao a tutti,
> gentilmente volevo chiedervi dove sbaglio, ho due tabelle Spatialite:
> -tubi (linestring)
> -osm_roads (linestring)
>
> In osm_roads, nel campo "name" sono ivi gli indirizzi.
> Volevo popolare in una colonna "indirizzo" della tabella tubi, gli
> indirizzi civici delle polilinee di openstreetmap:
>
> (select r.name
> from osm_roads r, tubi t
> where st_intersects(t.geom, st_buffer(r.geom, 20))=1) as indirizzo,
>
> (select r.name
> from tubi t, (select name, st_buffer(geom, 20) as geom from osm_roads) r
> where st_intersects(t.geom, r.geom)) as indirizzo2
>
> Il problema è che non funzionano bene le formule in spatialite...
>
> Avete gentilmente idee migliori?
> Grazie
Ciao, personalmente proverei cosi:
update tubi set indirizzo =
(select r.name
from osm_roads r, tubi t
where st_intersects (r.geom, st_buffer (t.geom, 8 ))= 1
AND tubi.pk = t.pk);
ma è uno script poco efficiente, in caso di molte linee durerebbe tanto;
per ovviare basterebbe utilizzare le virtualKNN introdotte da Furieri a
partire da spatialite 4.4.
qui un esempio:
https://pigrecoinfinito.wordpress.com/2018/01/04/spatialite-e-virtualknn/
saluti
-----
https://pigrecoinfinito.wordpress.com/
--
Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/
Maggiori informazioni sulla lista
Gfoss