Postgis offre 1000 strumenti per l’analisi spaziale. Una di queste, semplice quanto efficace, e’ la possibilita’ di calcolare la lunghezza totale degli oggetti memorizzati in una tabella di tipo LINESTRING.
Per esempio possiamo porci questa domanda : qual e’ la lunghezza totale delle strade, espressa in Km?
Procediamo:
– connettersi al database con psql:
$ psql -h nome_host -U nome_utente nome_database;
– una volta entrati (dopo aver digitato la password) impartire la seguente istruzione SQL:
nome_database=> SELECT sum(length(the_geom))/1000 AS km_roads FROM nome_tabella;
Nel mio caso ho ottenuto:
km_roads
——————
187.869370073215
che rappresenta la lunghezza totale espressa in Km.
Nel caso si volesse recuperare la lunghezza delle strade distinte per categoria (o meglio “classificazione”):
nome_database=> SELECT classifica,sum(length(the_geom))/1000 AS km_roads FROM grafo_new GROUP BY classifica;
classifica | km_roads
————-+——————-
| 0.278103249728031
provinciale | 7.57308599148574
statale | 12.8419180713568
comunale | 155.13306294845
autostrada | 1.00396374819259
vicinale | 11.0392360640017
(6 rows)
In questo modo si ottiene la lunghezza distinta per classificazione di strade