Buongiorno Corrado, grazie di esserti fatto vivo qui.
Il giorno 15 novembre 2017 09:57, Zironi Corrado <corrado.zironi@gmail.com>
ha scritto:
Buongiorno , mi presento: Sono Corrado e mi occupo di cartografia e SIt per
il Comune di Soliera
ho un problema da sottoporvi...
Devo calcolare la distanza di 500 metri da un punto ben definito ,
utilizzando uno shape file "linea" (stradario). Essendo una strada, ho
diverse possibilità di percorso
è possibile tracciare i vari percorsi (nessuno escluso)?
Sì ad esempio con le librerie di pg_routing direttamente in postgis, ad
esempio per calcolare tutti i percorsi da un punto A a un insieme N di
punti
puoi usare la funzione pgr-bdastar per il calcolo del percorso più breve
http://docs.pgrouting.org/latest/en/pgr_bdAstar.html#pgr-bdastar-one-to-many
Dovresti importare i tuoi dati in postgis (con DB manager) e assegnare ad
ogni tratto lineare un costo che sarà la lunghezza in metri.
Poi individuare i punti per i quali calcolare il percorso.
Vedo ch anche spatialite ha delel funzioni di routing
https://www.gaia-gis.it/spatialite-2.3.0/spatialite-network-2.3.0.html
In alternativa è posisbile usare i plugin LRS in QGIS che però lavora solo
in EPSG:4326
https://plugins.qgis.org/plugins/lrs/
In tutti i casi il grafo strade deve essere calibrato come network, trovi
un po' di documentazione nei link che ho messo...
Questa elaborazione mi serve per calcolare la distanza da vari accessi di
edifici "sensibili" rispetto alle SLOT o VLT (Legge Regionale Emilia
Romagna 5/2013 modificata con la 18/2016 DLR n. 831 del 12/06/2017)
A livello di metodo è necessario individuare degli insiemi di punti dei
quali calcolare la distanza per cui se con un buffer di 500 metri sugli
obbiettivi sensibili selezioni tutte le sale slot
che "potrebbero" interferire con l'obbiettivo puoi associare ("unisci
attributi per posizione" in QGIS) con quell'obbiettivo e utilizzare su
queste coppie punto-valori la funzione di routing.
Questo dovrebbe essere sufficiente per la previsione di legge, se invece
vuoi estrarre tutti i possibili percorsi di 500 metri da ogni obbiettivo
sensibile è più complicato, direi che si
potrebbe partire dai punti di intersezione tra il buffer di 500 mt e le
strade e fare uno script che riduce il
Un altra strada potrebbe essere l'utilizzo di un servizio di routing ad
esempio la api di openrouteservice consente di creare delle
isocrone/isometriche: è possibile utilizzarl anche da QGIS con il plugin
OSM tools
https://plugins.qgis.org/plugins/OSMtools/
dopo aver ottenuto una api_key su
https://go.openrouteservice.org
Ma il risultato è un po' impreciso (allegato) e occorre rifare la query
usando sia il profilo auto che quello pedonale...
Una soluzione "quick&dirty" che mi sento di consigliarti è quella di
estrapolare le coppie di punti obiettivo/sensibile - sala slot con il
metodo del buffer e poi in un foglio elettronico generare
delle stringhe di chiamata ad un servizio di routing basato su osm [0], ad
esempio per OSMR questa chiamata
http://router.project-osrm.org/route/v1/foot/10.93635,44.73518;10.93152,44.73856?overview=false
Restituisce in Json il percorso tra due punti con un attributo "distance",
sostiduendo le coordinate puoi generare varie stringhe e incollarle tutte
insieme in una shell di linux con wget e l'opzione -o con il nome file
Facci sapere quale approccio scegli e se hai bisogno di ulteriore aiuto, mi
rimetto anchea a Luca e Rocco che hanno lavorato su questo tema con Libera
Piemonte per realizzare una piattaforma GIS [1]
Amefad
[0] http://wiki.openstreetmap.org/wiki/Routing/online_routers
[1] http://liberapiemonte.it/wp-content/uploads/2017/10/locandina.pdf