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.
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.
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.
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:
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 50000000IMAGEPATH "C: \ OSGeo4W / tmp / ms_tmp /"
IMAGEURL "/ ms_tmp /"
FINE
La 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
Un 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 ...
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.
C'è modo di avere il modello standard phtml, grazie
Ciao,
Sto provando a chiamare un livello dal .map, come segue:
LAYER
NOME testhouse
PUNTO DI TIPO
CONNECTIONTYPE OGR
CONNESSIONE #”virtual.ovf”
"
xxxxx
ESEC …….
eess_id
wkbPoint
WGS84
"
Il mio problema è che il servizio DSN sta causando problemi: quando si richiede un GetCapabilities restituisce la password del database... posso chiamare un file per evitare di "regalare" la password o è un errore DSN???? Grazie!
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à.