[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