# Umap guida all'uso/Creare una mappa a partire da una tabella

Umap guida all'uso
Copertina Tutti i moduli · Sviluppo
    CopertinaUmap guida all'uso/Copertina
Livello principiante
* Come consultare una mappaUmap guida all'uso/Come consultare una mappa
* Creo la prima mappaUmap guida all'uso/Creo la prima mappa
* Registrare un account e creare una bella mappaUmap guida all'uso/Registrare un account e creare una bella mappa
* Modificare e personalizzare una mappaUmap guida all'uso/Modificare e personalizzare una mappa
Livello intermedio
* Creare popup multimedialiUmap guida all'uso/Creare popup multimediali
* Organizzare una mappa con i livelliUmap guida all'uso/Organizzare una mappa con i livelli
* Pubblicare una mappa e controllarne l'accessoUmap guida all'uso/Pubblicare una mappa e controllarne l'accesso
* Usare i poligoniUmap guida all'uso/Usare i poligoni
Livello avanzato
* Creare una mappa a partire da una tabellaUmap guida all'uso/Creare una mappa a partire da una tabella
* Utilizzare i dati OpenStreetMap con Overpass e uMap
Modifica il sommario
Testo originale
In questa lezione impareremo a:
* Strutturare i dati per poterli georeferenziare
* Georeferenziare un indirizzo e verificare il risultato
* Importare una tabella di dati in una carta uMap
* Inserire il contenuto della tabella nelle finestre pop-up
* Configurare l'ordinamento e il filtro dei dati
L'obiettivo di questo tutorial è creare una carta geografica importando dei dati in uMap. Questo può essere utile in diverse situazioni:
* visualizzare dei dati che avete trovato in un portale open data, per esempio https://data.nantesmetropole.fr
* inserire in una carta i contatti (clienti, fornitori, concorrenti...) che gestite in una tabella.
La sfida è quella di posizionare automaticamente ciascun elemento nella sua posizione geografica, definita da una longitudine e da una latitudine (ossia un punto GPS). Per questo è necessario che i dati siano geolocalizzati, per esempio una tabella dovrà contenere due colonne: latitudine e longitudine.
Mentre gli open data sono talvolta già georeferenziati, generalmente non è il caso dei file dei contatti che contengono gli indirizzi. In questo caso è necessario prevedere una fase di georeferenza, che consiste nel convertire ogni indirizzo in latitudine e longitudine. Andremo a spiegare questo caso, tappa per tappa.

## Creare una tabella con gli indirizzi

Per convertire degli indirizzi in longitudine e latitudine dobbiamo utilizzare un geocoder. Il geocoder utilizza una base di dati di indirizzi geocodificati, tra i quali ricerca l'indirizzo da georefenziare. Ecco qualche consiglio da seguire per facilitare il lavoro del geocoder e ottenere dei buoni risultati:
* suddividere ogni indirizzo in più colonne: indirizzo, codice postale e città
* mettere nella colonna indirizzo il nome della via preceduto dal numero, per esempio 14 rue del pa Paix, o il nome del luogo
* mettere tutti gli altri elementi dell'indirizzo (casella postale, piano...) in un altro campo
Ecco un esempio di qualche indirizzo ben strutturato, proveniente dal file Siège de syndicats intercommunaux de transports scolaires en Loire-Atlantique:
Testo della didascalia :
| NOME | INDIRIZZO | COMPL_ADR | CP | CITTÀ |
| C. C. LOIRE et SILLON | 2 bd de la Lore | | 44260 | SAVENAY |
| C. C. COUER d'ESTUAIRE | 1 Cours d'Armor | Route de Savenay | 44360 | SAINT ETIENNE DE MONTLUC |
| RESEAU CAP ATLANTIC' | 4 rue Alphonse Daudet | Zone Tertiaire de Kerbiniou | 44350 | GUERANDE |
| SITS SUD LOIRE LAC | Zl de la Seiglerie | | 44270 | MACHECOUL |
L'uso di maiuscolo o minuscole generalmente non incide. La tabella può anche contenere altre colonne, come in questo caso le colonne NOME e COMPL_ADR
Per le operazioni di seguito, è importante che la tabella rispetti queste regole:
* la prima riga della tabella deve contenere i nomi delle colonne, le altre righe contengono i dati e nient'altro
* i nomi della colonne non devono avere spazi, accenti o altri caratteri speciali
* i nomi delle colonne devono essere tutti diversi
* le celle non devono contenere degli a capo o dei salti di riga
* le celle non devono essere unite
In altre parole, la tabella deve rappresentare una base di dati

## Convertire gli indirizzi in coordinate geografiche

Su internet sono disponibili numerosi geocoder. La qualità del geocoder può cambiare secondo diversi fattori:
* l'indirizzo è incompleto o contiene un errore, per esempio un codice postale sbagliato
* la base di indirizzi usata contiente degli indirizzi sbagliati o non è aggiornata
* l'algoritmo incaricato di confrontare il tuo indirizzo con quello della base dati fa delle ipotesi errate.
Nessun geocoder è perfetto. Quindi è importante verificare la qualità del geocoder, o confrontare e combinare i risultati di diversi geocoder. La maggior parte dei geocoder generano, a completamento di ogni latitudine e longitudine, un punteggio che permette di valutare la qualità del risultato.
In Francia il sito https://adresse.data.gouv.fr permette l'accesso alla Base Nazionale degli Indirizzi (BAN). Il portale fornisce molti strumenti tra cui il geocoder CSV che permette di geocodificare un elenco di indirizzi molto rapidamente con buoni risultati. DoGeocodeur è un sito particolarmente ben progettato: utilizza diversi geocoder (Gogoe, IGN, BAN...) e combina i loro risultati su una carta, e ti permette di posizionare manualmente un indirizzo. Anche lui utilizza dei file CSV.
CSV indica un file di testo che contiene i dati di una tabella, i valori (il contenuto di ogni cella) sono separati da virgole (CSV significa comma-separated values)... o da un altro carattere: l'importante è che questo separatore non può essere utilizzato all'interno di un valore. Il punto e virgola spesso è utilizzato come separatore per creare di file CSV.
Per goecodificare gli indirizzi di una tabella le tappe da seguire sono:
* esportare ala tabella in un file nel formato CSV, scegliere il separatore (consiglio: punto e virgola) e il set di caratteri (encode) UTF-8. Includere le intestazioni di colonna se l'opzione viene proposta. Ecco un esempio di finestra di esportazione in CSV in LibreOffice Calc:
* importare il file CSV nel sito di geolocalizzazione scelto, generalmente ti chiederà di selezionare i nomi delle colonne corrispondenti all'indirizzo, al codice postale e al comune
* verificare i risultati della geolocalizzazione, sistemare e completare al bisogno
* esportare i risultati, ancora un file in formato CSV
Per esportare un file CSV in UTF-8 con Microsoft Excel, il menu Opzioni Web nella finestra Salva come permette, nella scheda Codifica, di selezionare Unicode (UTF-8). Purtroppo questa opzione non funziona con MS Excel 2006 né con Office 365/Excel, si tratta di un bug conosciuto.
Per aggirare questo bug, una possibilità è utilizzare l'editor Notepad++ che devi installare. Non cambiare la codifica nell'esportazione in CSV, quindi apri il file con Notepad++, convertire in UFT-8 dal menu Codifica, infine salva il file.

## Importo la tabella geocodificata in un layer

Clicca su Importa dati per visualizzare il relativo pannello, quindi seleziona il file precedentemente geocodificato.
Verifica che uMap abbia riconosciuto CSV per il formato dei dati, e scegli di importarli in un nuovo layer.
Infine clicca su Importa: i dati sono caricati e visualizzati sulla mappa. Le righe che non hanno indicato una posizione geografica sono ignorate, verrà visualizzato un messaggio.
uMap utilizza la prima riga del file CSV per identificare i nomi delle colonne, in particolare latitudine e longitudine che sono utilizzate per posizionare i punti (sono compresi anche lan e lon). Verifica la presenza di questi nomi di colonna se l'operazione fallisce. Attenzione anche che le coordinate geografiche siano espresse in gradi decimali, con un punto per delimitare i decimali. Per esempio 48.40 è corretto ma 48,40 e 48°24' non sono validi per uMap.
Osserva che puoi incollare i dati direttamente nel pannello di importazione. È comunque interessante utilizzare un file che puoi salvare sul tuo computer.
Infine puoi reimportare i dati, per esempio dopo averli aggiornati. Seleziona allora lo stesso layer e seleziona la spunta Replace layer content.

## Inserisco il contenuto della tabella nei pop-up

Clicca su un segnaposto importato dal passaggio precedente: il pop-up visualizza il nome del layer (nel caso il nome del file importato se non l'avete rinominato) al posto del nome presente nella tabella dei dati.
Ci sono diversi modi per risolvere questo problema.

### Modificare il campo utilizzato

Editate il layer e, nella finestra Proprietà avanzate, modificate la Chiave dell'etichetta. Inserisci il nome della colonna nel file importato. Ogni pop-up ora mostra il contenuto di quella colonna.
Fai attenzione alle maiuscole e alle minuscole. Il nome della colonna non deve contenere caratteri speciali: accenti, spazi, punteggiatura, ecc.

### Visualizzare una tabella

Il contenuto della tabella può essere visualizzato nei pop-up, sotto forma di tabella a due colonne: l'intestazione e il valore corrispondente.
Nella scheda Layer Interaction options, cambiare lo Stile del contenuto del pop-up in Tabella. Ecco un esempio di risultato:
Puoi modificare il contenuto della tabella cliccando su Modifica in una tabella nel selettore dei layer. Puoi eliminare o rinominare le colonne, o anche modificare le celle nella tabella.

### Definire il modello del pop-up

La tabella qui sopra non è particolarmente bella con le sue lettere maiuscole. Nel tutorial Creare popup multimediali abbiamo visto come formattare il contenuto di un popup. Possiamo utilizzare la stessa sintassi per definire i contenuti di tutti i popup di un layer, incluso il contenuto di una cella di una tabella.
Nella finestra Interaction options del layer, modificate il Template del contenuto del popup. Definite il formato del popup (titolo, grassetto, ecc) come visto in precedenza. Per inserire il contenuto di una cella nel popup, è sufficiente aggiungere il nome della colonna tra parentesi graffe, per esempio {NOM}.
Potete utilizzare nel template tutti i campi della tabella. Qui a destra un esempio di template e il risultato in un popup.
Questo approccio è molto potente. Potete utilizzarlo per inserire, in ogni riga della tabella, un link verso un sito internet (e perché non un testo associato), un'immagine o un iframe. Basta integrare il nome delle colonne e le loro parentesei nella sintassi della formattazione del testo, per esempio [[{LINK_SITO}|{TESTO_LINK}]] o ancora {{{{URL_IMMAGINE}}}.

## Configuro l'ordinamento e i filtri

Abbiamo visto nel tutorial Come consultare una mappa che è possibile vedere l'insieme dei dati di una carta come un elenco. Questo elenco può essere filtrato dall'utilizzatore, per esempio a partire da un nome.
Per permettere agli utilizzatori di filtrare i dati è opportuno indicare a uMap a quali campi la "parola-filtro" dovrà essere applicata. Questa operazione si effettua nella scheda Proprietà di default nella Proprietà della mappa. Potete indicare più nomi di campi (nomi di colonne), il filtro si applicherà a ciascun campo.
Potete anche ordinare l'elenco selezionando la Chiave di ordinamento, cioè il nome della colonna utilizzata per l'ordinamento (esclusivamente ordinamento crescente). Infine potete definire la chiave predefinita per l'etichetta, che sarà utilizzata se non è definita per il livello.
La chiave di ordinamento e di filtro si applicano a tutti i dati di tutti i layer. Se la vostra mappa è formata da più layer, è consigliato utilizzare lo stesso nome per la chiave per selezionare lo stesso tipo di informazioni. Evitate per esempio di utilizzare Città per un layer e Comune per un altro, utilizzate piuttosto Comune per tutti e due.
Questo tutorial è probabilmente il più complesso della serie. Tuttavia apprezzerete le possibilità offerte da uMap per integrare dei dati esterni.