Com funciona Mapserver

La vegada anterior vam parlar d'alguns criteris per què MapServer i el bàsic de la instal·lació. Ara vegem una mica del seu funcionament en un exercici amb els mapes dels cuates chiapanecos.

MapServer GeoServer On es munta

Un cop instal·lat Apache, el directori de publicació per MapServer defecte és la carpeta OSGeo4W directament sobre C: /

A dins, hi ha diferents carpetes amb aplicacions segons el que s'instal·li, però la carpeta per a publicació ha d'anar dins d'apatxe. En aquest cas la carpeta anomenada gis.

  • Després dins, la carpeta data conté les capes, ortofoto, etc.
  • A la carpeta etc, van les fonts true type usades per als labels, amb extensió .ttf. També aquí hi ha un arxiu txt que les aixeca i un altre que defineix símbols.
  • I finalment a la carpeta httdocs van les pàgines web que aixequen el servei.
  • MapServer GeoServer

La pàgina web

En l'exemple, faré servir el cas mostrat la vegada anterior. Bàsicament conté un arxiu index que redirecciona a un extensió phtml, i aquest al seu torn aixeca les funcions construïdes sobre un php i els mapes. Una carpeta conté les imatges vinculades des de la pàgina.

MapServer GeoServer

Si ens fixem, el phtml és només la closca construït a partir de taules, i cridats a les funcions mapscript / php. Hauria aixecar utilitzant:

http://localhost/gis/gispalenque.phtml

A baix es mostra el resultat funcionant:

  • al centre la funció GMapDrawMap (),
  • a la dreta l'anomenat al keymap GMapDrawKeyMap (),
  • la barra d'escala avall GMapDrawScaleBar (),
  • i en cas de les funcions de desplegament, una condició que fa al ListBox if (! IsHtmlMode ()) echo "<! -" amb les decisions: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.

Ja corrent, el desplegament es veu així:

MapServer GeoServer

Els arxius .map

La combinació de la publicació de Mapserver està en el que aixeca apatxe, que li envia php mitjançant mapscript i que després surt per aquest closca. Però la major part de la ciència està en els arxius .map, que no s'han de confondre amb els generats per Mapinfo, Manifold o Mobile Mapper Office amb la mateixa extensió.

Aquests .map són arxius de text, que contenen el mapa en forma de script. Aquests es poden crear amb programes d'escriptori com Quantum GIS, si es fixen n'hi ha un per al mapa principal, un per al Keymap i dos per als serveis OGC wms i wfs. Vegem com funciona mapscript:

MAPA

NAME PALENQUE_DEMO
STATUS ON
SIZE 600 450
SYMBOLSET ../etc/symbols.txt
Extent 604299 1933386 610503 1939300 #VISTA DE TOT EL MAPA DE PALENQUE
#EXTENT 605786 1935102 608000 1938800 #SOLO SECTOR 01
UNITS meters
SHAPEPATH "../data"
TRANSPARENT ON
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt

  • MAP indica que inicia l'script
  • STATUS, indica si el mapa per default ve encès o no
  • SIZE és la mida del desplegament
  • SYMBOLSET mostra la ruta dels símbols
  • Extent són les coordenades del desplegament. El símbol # s'utilitza per fer anotacions
  • UNITS per a les unitats
  • SHAPEPATH, la ruta on estan les capes
  • Tot al final acabarà amb la comanda END

A dins, el codi s'inicia amb una línia de comandament, i acaba amb END, per exemple per escala mínima i màxima; directori de les imatges temporals:

WEB
MINSCALE 2000000
MAXSCALE 50000000

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

MapServer GeoServerLa barra d'escala:

SCALEBAR
IMAGECOLOR 255 255 255
ETIQUETA
COLOR 0 0 0
PETIT
FI
SIZE 300 5
COLOR 255 255 255
BACKGROUNDCOLOR 0 0 0
OUTLINECOLOR 0 0 0
UNITS kilometers
Intervals 3
STATUS ON
FI

MapServer GeoServerUna capa de ràster: que va de fons, amb descripció en el llistat com "Ortofoto", a partir d'una tiff situada a la carpeta data:

CAPA
NAME ortofoto
METADATA
"DESCRIPTION" "ortofoto"
FI
TYPE RÀSTER
STATUS OFF
DATA "C: \ OSGeo4W / apps / gis / data / ortofotoGral.tif"
#OFFSITE 0 0 0
FI

Una capa shp de polígons, tematitzada en base a criteris, aixecant unes dades sobre una plantilla html, amb un rètol de font sans, mida 6, color negre i vores blanques de memòria intermèdia 5 ...

MapServer GeoServer

CAPA
NAME sector02Zona
TYPE Polygon
STATUS OFF
TRANSPARENCY 50
Extent 607852 1935706 610804 1938807 METADATA
"DESCRIPTION" "Temàtic per Valor Sector 02"
"RESULT_FIELDS" "MSLINK Cve_Mz Cve_Pred prop Àrea Perimetro VALOR"
FI
DATA PALENQUE_SECTOR01
TEMPLATE "ttt_query.html"
TOLERANCE 5
#TOLERANCEUNITS PIXELS
LABELITEM "VALOR"
CLASSITEM "VALOR"
LABELCACHE ON
CLASSE
SYMBOL 1
COLOR 128 128 128
OUTLINECOLOR 0 0 0
NAME "ZonaNULL"
EXPRESSION ([VALOR] = 0)
ETIQUETA
ANGLE AUTO
COLOR 0 0 0
FONT sans
TYPE TrueType
POSITION cc

PARTIALS FALSE
BUFFER 5
6 MIDA
OUTLINECOLOR 200 200 200
FI
END #class valor 0
CLASSE
SYMBOL 3
COLOR 255 128 128
#COLOR -1 -1 -1 #SIN FARCIT

.... i així fins a tancar amb

FI
END #Class Valor
END # Layer

Per concloure

D'aquí, que treballar amb MapServer, si bé és bastant simple, es torna mig complex i molt limitat per a treballs grans perquè tot està en el .map. La major desavantatge és que tot es fa de a peu, com definir cada color en una tematització, i per això sorgeixen eines com CartoWeb, que treballa sobre Mapserver però porta connectors construïts i exemples amb característiques que fan que aquesta versió primitiva es quedi com el readme first:

  • Treballar marcs separats, amb AJAX per tal de refrescar per separat
  • Parsejar el codi, sempre que un script reescrigui l'.map en base a criteris parametritzables
  • Tornar dinàmic el desplaçament sense que requereixi refrescar, com si es tractés d'una capa flash
  • Edició vectorial en línia, escriptura immediata sobre la memòria cau
  • Descàrrega de capa en forma vectorial
  • Exporta a Google Earth
  • Generar PDF del desplegament

En una propera el trobarem una mirada CartoWeb, aquí els deixo l'enllaç als exemples principals.

3 Replies to "Com funciona Mapserver"

  1. Hola,

    Estic intentant trucar a una capa des del .map, com segueix:

    CAPA
    NAME casas_prueba
    TYPE POINT
    CONNECTIONTYPE OGR
    CONNECTION # »virtual.ovf»
    »

    xxxxx
    EXEC .......
    eess_id
    wkbPoint
    WGS84

    »

    El meu problema és que el servei DSN està donant problemes: a l'demanar un GetCapabilities m'està tornant la contrasenya de la base de dades ... puc mostrar una trucada a un fitxer per evitar «regalar» la contrasenya o és un error de l'DSN ???? Gràcies!

  2. MapServer is a popular Open Source project whose purpose is to display dynamic spatial maps over the Internet. A mounted drive is a drive that is mapped to an empty folder on a volume that uses the NTFS file system. Mounted drives function as any other drives, but they are assigned drive paths instead of drive letters.

Deixa una resposta

La seva adreça de correu electrònic no es publicarà.

Aquest lloc té validesa Akismet per reduir el correu brossa. Aprèn com es processen les dades dels teus comentaris.