C'è chi va e c'è chi viene: matrice origine-destinazione

Come creare unrafo origine destinazione dinamico.

Blog

C'è chi va e c'è chi viene: matrice origine-destinazione

Nell'Aprile 2015, la Regione Lombardia ha pubblicato un nuovo dataset, intolato  Matrice OD2014 che può essere scaricato dal Geoportale OpenData della Regione qui.

Questo dataset, contiene un numero di identità che si spostano da un comune A ad un comune B, diviso temporalemnte ed in base al mezzo utilizzato.

Matrice regionale Origine Destinazione degli spostamenti distinti per origine, destinazione, fascia oraria, motivo e modo prevalente dello spostamento.

Matrice OD2014


Come si evince fin dalla favicon del portale, la Regione ha scelto la piattaforma Socrata che ha sua volta è un portale dove vengono archiviati i dati ed in particolar modo gli opendata. Molte città nel mondo utilizzano questo portale e si nota subito la qualità.

Socrata mette a disposizione una piattaforma di sviluppo da cui si possono estrarre i dati, senza doverli archiviare sul proprio server, mediante le cosidette API. Il modello di richiesta è abbastanza semplice, si tratta di un indirizzo url, che se richiamato nel browser, restituisce i dati in formato JSON:

https://data.ct.gov/resource/hma6-9xbg.json?category=Fruit&item=Peaches

Così ho iniziato ad ispezionare la struttura del dato e ho iniziato a fare qualche query sulla MatriceOD, con dei codici jQuery. Ho unito i risultati su una mappa LeafletJS e lavorato un po' sullo stile: il risultato lo vedete nell'immagine in copertina.

Questo sistema, di visualizzazione, che partiva con un filtro "destinazione:milano" è già pronte ad ospitare la funzione che cliccando su una origine, facesse diventare questa la destinazione, rigenerando il grafico.

Aver organizzato bene le query fin dall'inizio, semplicemente aggiungendo la funzione all'evento click, il grafico si rigenera, con una velocità decisamente buona.

matriceOD Legnano-Busto Arsizio
matriceOD Monza- Brugherio
matriceOD Cinisello Balsamo - Milano

Infine ho inserito una tabella per la consultazione dei dati grezzi. Ho utilizzato la libreria DataTables  che permette di visualizzare i dati in modo "tabella" come semplice input, lasciando alla libreria la creazione degli stili, dei filtri, l'ordinamento e il paging.

MatriceOD DataTables jQuery


Ho inserito il tutto nel mio nuovo sistema WebGIS v.0.1 e funziona perfettamente.

Provalo subito

  • SOCRATA: http://dev.socrata.com/foundry/#/www.dati.lombardia.it/wbii-r5a6
  • 10 Tips for Optimizing MySQL Queries: http://20bits.com/article/10-tips-for-optimizing-mysql-queries-that-dont-suck

Grafo origine destinazione dinamico

La mappa utilizza i dati della Matrice OD2014 ( link ai dati) e come sfondo un TileLayer di MapBox. La libreria per la generazione della mappa è LeafletJS e i dati sono caricati col metodo $.getJSON. La particolarità di questa mappa è relativa all'evento sul click delle destinazioni, a cui è associata una funzione che richiama il file JSON, che viene filtrato in base all'identificativo associato al cerchio rosso cliccato. La mappa di esempio funziona sono per i nodi Legnano e Milano (da provare) mentre ogni altro cerchio rosso a cui non è associato nessun valore, restituisce una mappa vuota.