Plugin MapServer Export

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.

Creare il file Progetto

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:

../../../_images/mapserver_export_qgis.png

Arrange raster and vector layers for QGIS project file nix

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.

  1. Aggiungere il layr raster landcover.tif cliccando su mActionAddRasterLayer Aggiungi raster.

  2. Aggiungere gli shapefile lakes.shp, majrivers.shp e airports.shp cliccando su mActionAddNonDbLayer Aggiungi vettore.

  3. Cambiare lo stile dei layer (come esempio, vedere figure_mapserver_export_1)

  4. Salvare un nuovo progetto con un nome mapserverproject.qgs usando File ‣ mActionFileSave Salva progetto.

Creazione del Map File

Per usare il plugin Mapserver Export da QGIS è necessario attivarlo usando il Gestore QGIS Plugin (sezione ref:load_core_plugin).

Figure Mapserver Export 2:

../../../_images/mapserver_export_dialog.png

Export to MapServer Dialog nix

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):

  1. Aprire la finestra di dialogo Esporta per MapServer cliccando sull’icona mapserver_export MapServer Export (vedi figura Figure_mapserver_export_2).

  2. Assegnare il nome (e.g., qgisproject.map) al nuovo mapfile.

  3. Selezionare il progetto QGIS (es. mapserverproject.qgs) precdentemente salvato.

  4. Assegnare un nome alla mappa (es. MyMap).

  5. Inserire la larghezza e l’altezza (es. 600 per la larghezza e 400 per l’altezza).

  6. Impostare le unità di misura in metri.

  7. Scegliere png come tipo di immagine.

  8. Cliccare su [OK] per generare il mapfile qgisproject.map.

Figure Mapserver Export 3:

../../../_images/mapserver_export_success.png

Export to MapServer Succesfull Dialog nix

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.

Risoluzione dei problemi

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

Testare il File Mappa

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:

../../../_images/mapserver_export_test.png

Test PNG created by shp2img with all MapServer Export layers nix

Usare il mapfile

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.