Si può usare QGIS per comporre la propria mappa, aggiungendo e arrangiando i layer, simbolizzandoli, personalizzando i colori, e infine creare un map file per Mapserver per la pubblicazione sul web.
Nota
Attualmente il plugin funziona solamente con la ‘Vecchia simbologia’, la ‘Nuova simbologia’ non è ancora supportata.
Il Plugin MapServer Export opera su un progetto QGIS salvato e non sui contenuti correnti della vista mappa e della legenda: questo ha generato confusione in diversi utenti. Prima di cominciare ad utilizzare il plugin, è necessario predisporre i layer vettoriali e raster che si intende usare in MapServer e salvare queste impostazioni in un file di progetto QGIS.
Figure Mapserver Export 1:
L’esempio seguente mostra brevemente come creare un semplice progetto da usare per il mapfile di MapServer. Vengono usati file vettoriali e raster dal dataset campione di QGIS Dati campione.
Aggiungere il layr raster landcover.tif cliccando su Aggiungi raster.
Aggiungere gli shapefile lakes.shp, majrivers.shp e airports.shp cliccando su Aggiungi vettore.
Cambiare lo stile dei layer (come esempio, vedere figure_mapserver_export_1)
Salvare un nuovo progetto con un nome mapserverproject.qgs usando File ‣ Salva progetto.
Per usare il plugin Mapserver Export da QGIS è necessario attivarlo usando il Gestore QGIS Plugin (sezione ref:load_core_plugin).
Figure Mapserver Export 2:
Map file | Scegliere un nome per il mapfile da creare. Si può anche usare il tasto sulla destra e cercare la cartella in cui si vuole salvare il mapfile. |
Progetto QGIS |
Inserire il percorso del file di progetto di QGIS (.qgs) che si vuole esportare. Si può anche utilizzare il pulsante sulla destra e selezionare il file manualmente. |
Nome mappa |
Un nome per la mappa. Questo nome è usato come prefisso per tutte le immagini generate dal mapserver. |
Larghezza mappa |
Larghezza dell’immagine di output in pixel. |
Altezza della mappa |
Altezza dell’immagine di output in pixel. |
Unità della mappa |
Unità di misura per l’output. |
Tipo di immagine |
Formato dell’immagine di output generata da MapServer |
Modello |
Percorso completo al template Mapserver che sarà usato con il mapfile |
Titolo |
Percorso completo al file intestazione di Mapserver che sarà usato con il mapfile |
Piè di pagina |
Percorso completo al file piè di pagina di Mapserver che sarà usato con il mapfile |
Soltanto Map file e progetto QGIS ono richiesti per creare un mapfile, tuttavia omettendo gli altri parametri ci si potrebbe ritrovare con un mapfile non funzionante. Nonostante QGIS sia capace di creare un mapfile da un file di progetto, potrebbe essere necessario qualche successivo aggiustamento per raggiungere il risultato ottimale. Nell’esempio che segue, viene mostrato come creare un mapfile a partire dal progetto mapserverproject.qgs precedentemente salvato (figura Figure_mapserver_export_2):
Aprire la finestra di dialogo Esporta per MapServer cliccando sull’icona MapServer Export (vedi figura Figure_mapserver_export_2).
Assegnare il nome (e.g., qgisproject.map) al nuovo mapfile.
Selezionare il progetto QGIS (es. mapserverproject.qgs) precdentemente salvato.
Assegnare un nome alla mappa (es. MyMap).
Inserire la larghezza e l’altezza (es. 600 per la larghezza e 400 per l’altezza).
Impostare le unità di misura in metri.
Scegliere png come tipo di immagine.
Cliccare su [OK] per generare il mapfile qgisproject.map.
Figure Mapserver Export 3:
Si può visualizzare il mapfile con qualsiasi editor o visualizzatore di testo. Se si apre il file, si noterà che lo strumento d’esportazione aggiunge i metadati necessari per rendere il nostro servizio web compatibile con le specifiche WMS.
Se si riceve un errore da mapserver del tipo:
loadSymbolSet(): Unable to access file. (./symbols/symbols.txt)
oppure:
msLoadFontset(): Unable to access file. Error opening fontset ./fonts/fonts.txt.
Significa che sono stati usati font o simboli nel mapfile che Mapserver non è in grado di decodificare.
Si possono commentare le linee contenenti gli errori (possibile se non sono presenti etichette oppure usando stili provenienti da symbols.txt). Oppure si possono creare questi file (vedi sotto).
Il semplice file fonts.txt (arial è usato nei mapfile generati da QGIS) contenente la seguente linea
# either relative to the map file or a full path:
arial /usr/share/fonts/truetype/msttcorefonts/arial.ttf
Il semplice file symbols.txt file contenente la definizione di un simbolo circolare (perché un simbolo circolare è usato per i layer di punti)
SYMBOLSET
SYMBOL
NAME "circle"
TYPE ellipse
FILLED true
POINTS
1 1
END
END
END
E’ possibile testare il lavoro.
Se il mapfile è accessibile da un server cgi, si può usare uno degli url della finestra di dialogo.
Un’altra opzione è usarelo strumento shp2img per creare un’immagine dal mapfile. shp2img è parte di MapServer e FWTools. Per creare un’immagine dalla mappa:
Aprire un terminale
Navigare nella cartella cui è stata salvato il mapfile.
Lanciare shp2img -m qgisproject.map -o mapserver\_test.png e visualizzare l’immagine
Il comando crea un file PNG con tutti i layer inclusi nel progetto QGIS: l’estensione spaziale dell’immagine sarà la stessa di quella del progetto. Come si vede in Figura figure_mapserver_export_4, tutte le informazioni eccetto i simboli degli aeroporti sono incluse.
Figure Mapserver Export 4:
Se si prevede di usare il mapfile per richieste WMS standard, probabilmente non sarà necessario alcun adattamento. Se invece si prevede di usarlo con un modello di mappa o un’interfaccia personalizzata, potrebbe essere necessario del lavoro manuale. Per vedere come è facile utilizzare QGIS per offrire servizi di webmapping, si veda il video di Christopher Schmidt flash video. Egli usa una vecchia versione di QGIS (0.8), ma le operazioni sono facilmente adattabili ad una qualsiasi versione più nuova.