Setup Menus in Admin Panel

School.Dataninja.it

Costruire una mappa di segnalazioni in 3 mosse (come per #Messinasenzacqua)

Tra fine ottobre e inizio novembre (2015) ha avuto molto impatto un fatto di cronaca, taggato con hashtag #Messinasenzacqua. Ti risparmio i preamboli e vado al sodo: mentre le istituzioni affermavano che l’emergenza fosse stata risolta, su Facebbok moltissime persone segnalavano che invece nelle loro case l’acqua non fosse arrivata. Per OpenDataSicilia (non sai cos’è? Info qui!) con Andrea Borruso abbiamo costruito una piccola mappa per visualizzare le segnalazioni strada per strada. La includo qui, e in basso spiego com’è stata costruita (qui invece il post originale pubblicato su OpenDataSicilia).

Step 1: le segnalazioni

Usualmente su Facebook tutti noi scriviamo come se chiacchierassimo al bar. Esempio: «A casa mia a Torre Faro l’acqua non è arrivata. Neanche da me in viale Boccetta». Nel farlo stiamo comunicando vari dati, provo a riassumerli così:

  1. Autore della segnalazione
  2. Data e ora in cui il commento/segnalazione è stato scritto
  3. Luogo al quale si riferisce la segnalazione
  4. Stato del servizio idrico (l’acqua c’è o non c’è?)

Sarà che la mia visione del mondo è ormai orientata ai dati, ma passare da quei commenti a questo schema mi viene davvero naturale. Di fatto questo è il primo passo per passare da dati non strutturati (i commenti) a dati strutturati (una tabella), dai quali poi fare una mappa.

Step 2: strutturare i dati

Il modo migliore per spiegare cosa ho fatto è mostrarlo. Ecco la tabella creata

Ho creato una tabella (in questo caso con Google Drive) e di fatto questa tabella è molto simile allo schema che ho descritto sù. Ecco l’elenco delle colonne, associate ai campi che ho elencato prima:

  • Zona (Luogo al quale si riferisce la segnalazione)
  • Note (colonna aggiuntiva. L’ho inserita per non perdere i commenti con maggiori dettagli)
  • Stato (Stato del servizio idrico (l’acqua c’è o non c’è?)
  • latitude (Latitudine > Luogo al quale si riferisce la segnalazione)
  • longitude (Longitudine > Luogo al quale si riferisce la segnalazione)
  • Fonte (Autore della segnalazione)
  • Aggiornamento (Data e ora in cui il commento/segnalazione è stato scritto)

C’è solo un elemento in più che ho aggiunto manualmente, rispetto al commento su Facebook: le coordinate del punto. È chiaro che siano informazioni approssimative (non possiamo avere la certezza che in tutto il Viale Boccetta ci sia stato il disservizio) ma servono a mettere un punto sulla mappa, abbastanza vicino al luogo esatto della segnalazione, ed è un primo passo per fare quanto ci serve.

Step 3: costruire la mappa

Per costruire la mappa essenzialmente sono necessarie due azioni.

A) Geolocalizzare le vie

Per geolocalizzare le vie ho utilizzato un tool (gratuito) che si basa sui dati di OpenStreetMap. Lo trovi a questo link. Le azioni che puoi compiere sono due

  • Inserire la via, specificando la città (esempio: Viale Boccetta, Messina)
  • Cliccare col mouse in un punto della mappa. Facendolo, nel box compaiono le coordinate del punto (è utile qualora l’indirizzo esatto non fosse disponibile).

B) Importare i dati sulla mappa

La mappa costruita per #Messinasenzacqua è stata fatta con un tool che si chiama uMap, al volo da Andrea Borruso, che è anche autore di questo post sulla School dove spiega esattamente i singoli passaggi. Essenzialmente il punto centrale è che il tool uMap permette di costruire mappe per le quali le fonti dati (cioè le tabelle) possono essere anche aggiornate in tempo reale. La spiegazione è in questo video, e già aggiungo due righe di dettaglio.

In pratica nell’editor di uMap invece di inserire una tabella, inserisco il link a Google Spreadsheet. Non esattamente il link alla pagina web della tabella, ma un link un po’ speciale che contiene una serie di informazioni aggiuntive: all’interno di esso specifico che mi inseressa scaricare i dati in formazo CSV e che i dati da utilizzare sono quelli di alcune colonne.

Quello che accade allora è il seguente scenario: quanto l’utente apre la mappa o il post in cui la mappa è inclusa, senza che non ce ne accorgiamo viene scaricata tramite il nostro browser la tabella dei dati tramite uMap. Posto quindi che i dati siano formattati correttamente, le singole segnalazioni vanno a popolare la mappa.

Se nella tabella su Google Spreadsheet cambio in dato, il successivo utente che aprirà la mappa scaricherà (in realtà a sua insaputa) nuovamente la tabella in formato CSV e i nuovi dati popoleranno la mappa.

Tanti tool, un solo metodo

In questo post di Andrea viene spiegato come questi dati vengono sceltiscaricati. È un po’ più complesso tecnicamente, perché include essenzialmente una query (SQL) dentro un URL, ma l’importante è capire il concetto. Per fare una mappa di segnalazioni è sufficiente strutturare i dati in una tabella, suddividendoli per bene in colonne, usando qualche accorgimento sulla sola formattazione (scrivere le date con lo stesso formato, usare con cura e omogeneità maiuscole e minuscole – i dati devono essere puliti, ecco una checklist per controllarli). Se i dati sono ben formattati sarà semplicissimo visualizzarli con un tool. Ecco, per il momento mi fermo qui! 🙂

Letture: 285