Creare poligoni del tempo di guida utilizzando gli strumenti Open Source?


55

Qualcuno sta utilizzando strumenti e / o dati open source per generare poligoni del tempo di trasmissione che si irradiano da una determinata posizione? Ad esempio, ho usato prodotti ESRI come Network Analyst e Business Analyst per generare confini poligonali che rappresentano la massima distanza percorribile su una rete stradale da un determinato punto entro un periodo di tempo definito dall'utente (ad esempio 5, 10 e / o 15 minuti). Esistono alternative simili open source o basate sul web?

Ho visto questo post, ma in realtà non offre opzioni alternative: puoi creare un poligono della regione di viaggio con l'API di Google Maps?

Ero particolarmente curioso di sapere se qualcuno sta (o può) usare OpenStreetMap per fare analisi del tempo di guida?

Inoltre, c'è qualche implementazione delle utility pgRouting che potrebbero essere utilizzate per generare poligoni? http://pgrouting.postlbs.org/


Interessato a vedere la risposta a questa. Per quanto mi riguarda, ESRI guida i prodotti server Open-Source, principalmente perché espone il Geoprocessing in un modello facile da servire / consumare.
Simon,

Qualche aggiornamento su questa domanda? Sono davvero interessato a scherzare con un poli creatore DT open source nello scripting delle mappe.
Furlong,

Non posso ancora dare una risposta in quanto ho dovuto mettere in pausa il mio lavoro su questo progetto. Dal momento che non sono un tipo "GRASS", probabilmente non ho intenzione di seguire quella strada, anche se sembra che sia una soluzione molto praticabile. In questo momento, tuttavia, mi sto orientando verso il tentativo di usare pgRouting, che presumibilmente ha funzioni Alpha Forme incorporate.
Ryan Dalton,

Risposte:


52

GRASS v.net.iso ti darà un risultato come questo:

inserisci qui la descrizione dell'immagine

Potresti non voler eseguire un algoritmo di scafo convesso su questo output. Immagina le strade blu: uno scafo convesso attorno ad esse conterrebbe molte parti che non sono raggiungibili nel tempo rappresentato dal "blu".

Invece, potresti voler esaminare le forme alfa (domanda correlata: cosa sono definizione, algoritmi e soluzioni pratiche per lo scafo concavo? )

schizzo a forma di alfa

È possibile creare isocronizzazioni del tempo di unità utilizzando pgRouting e QGIS ( come descritto qui ). In questo caso non ho usato OSM, ma ovviamente potresti costruire la tua rete instradabile basata su OSM (vedi lo strumento osm2pgrouting ).

inserisci qui la descrizione dell'immagine

( piena risoluzione )

Per una soluzione PostGIS pura, è possibile utilizzare la funzione di forma alfa di pgRouting . Ecco un confronto tra le forme alfa implementate in pgRouting e l'approccio che ho presentato nel precedente aggiornamento:

inserisci qui la descrizione dell'immagine

Le aree colorate rappresentano i risultati della funzione di forma alfa, le linee nere sono i risultati dell'approccio di interpolazione descritto in precedenza. Le aree del bacino sono meno dettagliate usando le forme alfa di pgRouting. Inoltre, non sembra esserci modo di variare il valore dell'alfa per creare rappresentazioni più dettagliate.


2
+1 su forme alfa! Impara qualcosa di nuovo ogni giorno! Sapevo che lo scafo convesso non era esattamente la soluzione, ma non ne sapevo nulla!
Darren Cope,

1
Grazie mille per aver pubblicato la descrizione di questo sul tuo blog. Ho sicuramente intenzione di dare un'occhiata a questo presto e vedere se posso replicarlo con i miei dati. Sembra fantastico, però!
Ryan Dalton,

10

GRASS 'v.net.iso può essere utilizzato per creare il tempo di guida' rete 'che potresti passare in un comando' scafo convesso 'per ottenere un poligono. Forse non è l'ideale, ma funzionerebbe!


1
Haha - mi ha appena battuto!
om_henners,

+1 per v.net.iso, ma non sono sicuro della parte dello scafo convesso - vedi la mia risposta
underdark

9

Bene, potenzialmente potresti usare v.net.iso da GRASS GIS. Tuttavia non crea poligoni (AFAIK), ma divide le linee per classi di costo dalla fonte.

Per quanto riguarda il calcolo dei tempi di guida da OSM, è possibile importare i dati in GRASS con v.in.osm e utilizzare v.net.iso per calcolare le zone di costo. Se desideri tempi di percorrenza e potenzialmente non hai limiti di velocità su strada, puoi calcolare il limite di velocità in base a una funzione della classe stradale.


7

È possibile utilizzare GraphHopper per tale attività, che supporta anche diverse modalità come camminare o andare in bicicletta e utilizza OpenStreetMap per impostazione predefinita. Avrai bisogno di un po 'di codice Java che esplora la rete stradale dal punto di partenza simile a come funzionano gli algoritmi Dijkstra ma poi puoi ottenere qualcosa di simile anche in tempo reale (<0,5 s):

inserisci qui la descrizione dell'immagine

Il codice raccoglierà i punti che devi convertire in un poligono, ad esempio con gli strumenti JTS . La velocità dipende in gran parte da quest'ultimo passaggio. Senza questo sarebbe possibile meno di 0,5 secondi anche per grandi distanze.

Un altro modo sarebbe con OpenTripPlanner .



5

Potresti voler dare un'occhiata all'API JavaScript Route360 ° aperta , che funziona sia con Leaflet che con Google Maps. Restituisce poligoni del tempo di viaggio per le seguenti modalità di viaggio: a piedi, in bicicletta, in auto, in transito.

Poligoni del tempo di viaggio - New York

È gratuito e open source e la copertura è abbastanza buona. Puoi trovare molti tutorial diversi su come usarlo sul sito web.


1
Il lato client è open source, ma il lato server non IMO.
Karussell,

2

Sebbene non risponda direttamente alla tua domanda, dovresti dare un'occhiata all'API Mapnificent .

Mapnificent fornisce mappe dinamiche dei tempi di viaggio dei trasporti pubblici per molte città degli Stati Uniti e alcune in tutto il mondo. Puoi utilizzare l'API Mapnificent per aumentare la tua applicazione Google Maps con sovrapposizioni di tempo di viaggio dei trasporti pubblici.

Dai un'occhiata a Londra qui . testo alternativo


mapnificent è open source?
Karussell,

2

Mi sono anche imbattuto nell'estensione di rete di gvSIG , ma la documentazione di configurazione che ho trovato finora è piuttosto scadente. Ho grandi speranze, ho solo bisogno di capire i dettagli per il calcolo dei costi.

Stavo usando i dati TIGER del censimento degli Stati Uniti per la rete stradale e in realtà ho generato alcuni poligoni, ma non riuscivo a far sì che le unità di costo avessero davvero senso. Se qualcuno ha implementato con successo questo strumento, mi piacerebbe saperlo.

Ho anche trovato Quantum Navigator per QGIS, ma non ho trovato aggiornamenti recenti.


2

Il risultato con l'approccio concavo dello scafo è eccezionale e ho preso molta ispirazione dalle immagini sopra. Ma ho notato che i risultati possono includere alcune aree inaccessibili su strada (come il fiume, ad esempio). Non c'è dubbio che questo non è un problema in termini di ricerca di caratteristiche rilevanti (centroidi della popolazione, numero di case) per distanza o tempo dall'origine. Ma funziona anche solo alle estremità di ciascun collegamento. Ancora una volta, non è un problema nella stragrande maggioranza dei casi (poiché i collegamenti stradali più lunghi hanno il controllo dell'accesso - di solito non è possibile scendere fino a quando non si arriva al successivo incrocio / incrocio).

Tuttavia, per tutto ciò, ho lavorato su un approccio diverso basato sui LINK restituiti da PgRouting / (o un algoritmo "Dijkstra" non elaborato) ordinato per tempo dal nodo di origine. È relativamente semplice e classifica i collegamenti in base alla fascia oraria e divide anche i collegamenti che attraversano i limiti temporali. Quindi i collegamenti con la stessa categorizzazione (ad es. 0-2 minuti, 2-4 minuti) vengono bufferizzati di 250 metri.


1

Al WhereCampPDX di quest'anno, diversi rappresentanti di OpenStreetMap hanno dichiarato che l'utilizzo dei dati OSM per il routing è abbastanza comune in Europa. Tuttavia, è più raro negli Stati Uniti perché la mappa di solito non è abbastanza buona. Puoi provare un servizio di routing basato su OSM su:

http://openrouteservice.org/


1
E nessun routing non è la stessa cosa del tempo di guida, ma è correlato.
jvangeld,

1
È una specie di percorso ma "uno a tutti" limitato dal tempo o dalla distanza
Karussell,

1
Questo servizio funziona bene per me. Non ho avuto la possibilità di testare l'accuratezza, tuttavia mi consente di trovare ad esempio un raggio di 1 ora attorno a una determinata area. Molto utile se uno deve trasferirsi in un'area sconosciuta per lavoro ecc.
Roman

1
Openrouteservices.org ha un'opzione per esportare i nostri dati su geoJSON. Successivamente possiamo convertirlo e visualizzare la nostra mappa isochrone, ad esempio in Google Earth, Google Maps, ecc ... mkrgeo-blog.com/…
Mariusz Krukar

Eccezionale. Openrouteservice sembra funzionare ora negli Stati Uniti.
jvangeld,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.