[email protected] 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/
_______________________________________________
[email protected]
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

Rispondere a