Come funziona Mapserver

L'ultima volta che abbiamo parlato perché alcuni criteri MapServer e le basi dell'installazione. Vediamo ora un po 'del suo funzionamento in un esercizio con le mappe degli amici del Chiapas.

 maperver geoserver Dove è montato

Una volta installata Apache, la cartella predefinita MapServer è la cartella OSGeo4W direttamente su C: /

All'interno ci sono diverse cartelle con applicazioni a seconda di cosa è installato, ma la cartella per la pubblicazione deve andare all'interno di apache. In questo caso la cartella chiamata gis.

  • Allora all'interno, la cartella dati contiene i layer, l'ortofoto, ecc.
  • Nella cartella etc, ci sono i font true type utilizzati per le etichette, con estensione .ttf. Anche qui c'è un file txt che li solleva e un altro che definisce i simboli.
  • E infine nella cartella httdocs andare le pagine web che sollevano il servizio.
  • maperver geoserver

Il sito web

Nell'esempio, userò il caso mostrato l'ultima volta. Fondamentalmente contiene un file indice che reindirizza a uno con un'estensione phtml, e questo a sua volta solleva le funzioni costruite sopra un php e le mappe. Una cartella contiene le immagini collegate dalla pagina.

maperver geoserver

Se lo guardiamo, phtml è solo la shell costruita da tabelle e chiama le funzioni mapscript / php. Dovresti alzarti usando:

http://localhost/gis/gispalenque.phtml

Di seguito è il risultato:

  • al centro la funzione GMapDrawMap (),
  • sulla destra la chiamata a keymap GMapDrawKeyMap (),
  • la barra di scala qui sotto GMapDrawScaleBar (),
  • e in caso di funzioni di distribuzione, una condizione rispetto alla casella di riepilogo if (! IsHtmlMode ()) echo "  con decisioni: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.

La distribuzione è già in esecuzione:

maperver geoserver

I file .map

La combinazione della pubblicazione di Mapserver è in quello che Apache solleva, che invia il php attraverso MapScript e quello poi esce da quel guscio. Ma la maggior parte della scienza è nei file .map, da non confondere con quelli generati da Mapinfo, Manifold o Mobile Mapper Office con la stessa estensione.

Questi .map sono file di testo, che contengono la mappa sotto forma di script. Questi possono essere creati con programmi desktop come Quantum GIS, se guardi ce n'è uno per la mappa principale, uno per la Keymap e due per i servizi OGC wms e wfs. Vediamo come funziona mapscript:

MAP

NOME PALENQUE_DEMO
STATUS ON
FORMATO 600 450
SYMBOLSET ../etc/symbols.txt
EXTENT 604299 1933386 610503 1939300 #VIEW DELL'AUTO MAPPA DI PALENQUE
#EXTENT 605786 1935102 608000 1938800 #SOLO IL SETTORE 01
MISURATORI UNITI
FORMA "../data"
TRASPARENTE ON
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt

  • MAP indica che si avvia lo script
  • STATUS, indica se la mappa predefinita è attiva o meno
  • SIZE è la dimensione del display
  • SYMBOLSET mostra la rotta dei simboli
  • EXTENT sono le coordinate di visualizzazione. Il simbolo # viene utilizzato per creare annotazioni
  • Unità per unità
  • SHAPEPATH, il percorso in cui sono i livelli
  • Tutto alla fine terminerà con il comando END

All'interno, il codice inizia con una riga di comando e termina con END, ad esempio per la scala minima e massima; directory delle immagini temporanee:

WEB
  2000000 MINSCALE
  MAXSCALE 50000000

IMAGEPATH "C: \ OSGeo4W / tmp / ms_tmp /"
  IMAGEURL "/ ms_tmp /"
FINE

maperver geoserverLa barra di scala:

Scalebar
  IMAGECOLOR 255 255 255
  ETICHETTA
    COLORE 0 0 0
    TAGLIA PICCOLA
  FINE
  FORMATO 300 5
  COLORE 255 255 255
  BACKGROUNDCOLOR 0 0 0
  OUTLINECOLOR 0 0 0
  UNITÀ chilometri
  INTERVALLI 3
  STATUS ON
FINE

maperver geoserverUn livello raster: che va in secondo piano, con una descrizione nell'elenco come "Ortofoto", da un tiff situato nella cartella dei dati:

 

 

LAYER
  NOME ortofoto
  METADATA
    "DESCRIPTION" "OrtoFoto"
  FINE
  TIPO RASTER
  STATUS OFF
  DATI "C: \ OSGeo4W / apps / gis / data / orthophotoGral.tif"
  #OFFSITE 0 0 0
FINE

Uno strato di poligoni di tipo PS, tematico basato su criteri, sollevamento di alcuni dati su un modello html, con etichetta di carattere sans, dimensione 6, colore nero e bordi bianchi del buffer 5 ...

maperver geoserver

LAYER
  NOME settore02Zone
  TIPO POLIGONO
  STATUS OFF
  TRASPARENZA 50
  EXTENT 607852 1935706 610804 1938807 METADATA
    "DESCRIPTION" "Theme by Value Sector 02"
    "RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred prop Area Perimeter VALUE"
  FINE
  DATA PALENQUE_SECTOR01
  MODELLO "ttt_query.html"
  TOLLERANZA 5
  #TOLERANCEUNITS PIXELS
  LABELITEM "VALUE"
  CLASSE "VALORE"
  LABELCACHE SU
  CLASSE
    SYMBOL 1
    COLORE 128 128 128
    OUTLINECOLOR 0 0 0
    NOME "ZonaNULL"
    ESPRESSIONE ([VALUE] = 0)
    ETICHETTA
         ANGOLO AUTO
         COLORE 0 0 0
         FONT sans
         TIPO TRUETYPE
         POSIZIONE cc
        
PARTIALS FALSE
         BUFFER 5
         SIZE 6
         OUTLINECOLOR 200 200 200
    FINE
  END #class Valore 0
  CLASSE
    SYMBOL 3
    COLORE 255 128 128
    #COLOR -1 -1 -1 #SIN FILLING

.... e così via fino alla chiusura

FINE
  END #Class Value
END # Layer

Insomma

Quindi, lavorare con mapserver, sebbene sia abbastanza semplice, diventa complesso e molto limitato per lavori di grandi dimensioni perché tutto è nel .map. Il più grande svantaggio è che tutto è fatto a piedi, come definire ogni colore in un tema, e per questo motivo nascono strumenti come CartoWeb, che funziona su Mapserver ma porta plugin ed esempi incorporati con caratteristiche che fanno sembrare questa versione primitiva il prima lettura:

  • Lavori i fotogrammi separati, con AJAX per aggiornarli separatamente
  • Analizza il codice, a patto che uno script riscrivi la .map sulla base di criteri parametrizzabili
  • Scorrimento dinamico della schiena senza richiedere aggiornamenti, come se fosse uno strato flash
  • Modifica vettoriale in linea, scrittura cache immediata
  • Scarica il livello in forma vettoriale
  • Esporta in Google Earth
  • Generare PDF della distribuzione

In un prossimo daremo un'occhiata a CartoWeb, qui lascio il link agli esempi principali.

3 risposte a "How Mapserver works"

  1. Ciao,

    Sto provando a chiamare un livello dal .map, come segue:

    LAYER
    NOME testhouse
    PUNTO DI TIPO
    CONNECTIONTYPE OGR
    CONNECTION # »virtual.ovf»
    »

    xxxxx
    EXEC …….
    eess_id
    wkbPoint
    WGS84

    »

    Il mio problema è che il servizio DSN sta dando problemi: quando si richiede un GetCapabilities restituisce la password del database ... posso chiamare un file per evitare di "rivelare" la password o è un errore DSN ???? Grazie!

  2. MapServer è un popolare progetto Open Source il cui scopo è quello di visualizzare mappe spaziali dinamiche su Internet. Un drive montato è un'unità mappata in una cartella vuota di un volume che utilizza il file system NTFS. Le unità montate funzionano come tutte le altre unità, ma vengono assegnati percorsi di unità anziché lettere di unità.

Lascia una risposta

L'indirizzo email non verrà pubblicato.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.