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.
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.
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.
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í:
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 de l'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 50000000IMAGEPATH "C: \ OSGeo4W / tmp / ms_tmp /"
IMAGEURL "/ ms_tmp /"
FI
La 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
Una 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 ...
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.
Hi ha manera de tenir la plantilla phtml estàndard de sortida, gràcies
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: en demanar un GetCapabilities m'està tornant la contrasenya de la base de dades…puc posar una trucada a un fitxer per evitar “regalar” la contrasenya o és un error del DSN???? Gràcies!
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.