Como funciona Mapserver
A hora anterior falabamos por algúns criterios MapServer e as bases da instalación. Agora imos ver parte do seu funcionamento nun exercicio cos mapas dos compañeiros de Chiapas.
Onde está montado
Unha vez que Apache está instalado, o directorio de publicación predeterminado para MapServer é a carpeta OSGeo4W directamente sobre C: /
Dentro hai diferentes cartafoles con aplicacións dependendo do que estea instalado, pero o cartafol para a publicación debe ir dentro de apache. Neste caso o cartafol chamado gis.
- Entón dentro, o cartafol de datos contén as capas, ortofotos, etc.
- No cartafol etc, hai os tipos de letra de tipo verdadeiro empregados para as etiquetas, cunha extensión .ttf. Aquí tamén hai un ficheiro txt que os eleva e outro que define símbolos.
- E finalmente no cartafol httdocs vai as páxinas web que aumentan o servizo.
A páxina web
No exemplo, vou usar o caso mostrado a última vez. Basicamente contén un ficheiro de índice que redirixe a un cunha extensión phtml, e isto á súa vez aumenta as funcións construídas sobre un php e os mapas. Un cartafol contén as imaxes ligadas desde a páxina.
Se o vemos, o phtml é só o shell construído a partir de táboas e chama ás funcións mapscript / php. Debería levantarse usando:
http://localhost/gis/gispalenque.phtml
Abaixo está o resultado:
- ao centro a función GMapDrawMap (),
- á dereita á chamada mapa de teclas GMapDrawKeyMap (),
- a barra de escala de abaixo GMapDrawScaleBar (),
- e no caso das funcións de implementación, unha condición respecto da lista if (! IsHtmlMode ()) eco " con decisións: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.
Xa se está executando, a implementación é así:
Os ficheiros .map
A combinación da publicación Mapserver é no que aumenta o Apache, que envía a través de php mapfre e que logo sae desa cuncha. Pero a maior parte da ciencia está en ficheiros .map, que non se debe confundir cos xerados por Mapinfo, Manifold ou Mobile Mapper Office coa mesma extensión.
Estes .map son ficheiros de texto que conteñen o mapa en forma de script. Estes pódense crear con programas de escritorio como Quantum GIS, se notas que hai un para o mapa principal, un para o Keymap e dous para os servizos wms e wfs de OGC. Vexamos como funciona mapscript:
MAP
NAME PALENQUE_DEMO
STATUS ON
TAMAÑO 600 450
SYMBOLSET ../etc/symbols.txt
EXTENTE 604299 1933386 610503 1939300 #LISTO DE TODO O MAPA DE PALENQUE
#EXTENT 605786 1935102 608000 1938800 #SOLO O 01 SECTOR
UNIDADES METROS
SHAPEPATH "../data"
TRANSPARENTE ENCENDIDO
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt
- O MAP indica o guión de inicio
- Estado, indica se o mapa predeterminado está activado ou non
- SIZE é o tamaño da pantalla
- SYMBOLSET mostra o camiño dos símbolos
- EXTENT son as coordenadas de visualización. O símbolo # úsase para facer anotacións
- UNIDADES para unidades
- SHAPEPATH, o camiño onde están as capas
- Todo ao final rematará co comando END
No interior, o código comeza cunha liña de comandos e remata con END, por exemplo, para a escala mínima e máxima; directorio de imaxes temporais:
WEB
MINSCALE 2000000
MAXSCALE 50000000IMAGEPATH "C: \ OSGeo4W / tmp / ms_tmp /"
IMAGEURL "/ ms_tmp /"
FIN
A barra de escala:
ESCALEBAR
IMAGECOLOR 255 255 255
LABEL
COR 0 0 0
tamaño pequeno
FIN
TAMAÑO 300 5
COR 255 255 255
BACKGROUNDCOLOR 0 0 0
OUTLINECOLOR 0 0 0
UNIDADES quilómetros
INTERVALS 3
STATUS ON
FIN
Unha capa ráster: que vai ao fondo, cunha descrición na lista como "Ortofoto", a partir dun tiff situado no cartafol de datos:
CAPA
Ortofoto de NOME
METADATA
"DESCRICIÓN" "OrtoFoto"
FIN
TIPO RASTER
STATUS OFF
DATOS "C: \ OSGeo4W / apps / gis / data / orthophotoGral.tif"
#OFFSITE 0 0 0
FIN
Unha capa shp de polígonos, temática baseada en criterios, levantando algúns datos nun modelo de html, cunha etiqueta sans fonte, tamaño 6, cor negra e bordos brancos do buffer 5 ...
CAPA
Sector NAME02Zone
TIPO DE POLÍGONO
STATUS OFF
TRANSPARENCIA 50
EXTENTO 607852 1935706 610804 1938807 METADATOS
"DESCRICIÓN" "Tema por sector de valor 02"
"RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred Perimetro de área de VALUE"
FIN
DATOS PALENQUE_SECTOR01
TEMPLATE "ttt_query.html"
TOLERANCIA 5
#TOLERANCEUNITS PIXELS
"VALOR" LABELITEM
"VALOR" CLASSITEM
LABELCACHE ON
CLASS
SYMBOL 1
COR 128 128 128
OUTLINECOLOR 0 0 0
NOME "ZonaNULL"
EXPRESSIÓN ([VALUE] = 0)
LABEL
ANGULO AUTO
COR 0 0 0
FONT sans
TIPO TRUETYPE
POSICIÓN cc
PARTIALS FALSE
BUFFER 5
6 TAMAÑO
OUTLINECOLOR 200 200 200
FIN
END #class valor 0
CLASS
SYMBOL 3
COR 255 128 128
#COLOR -1 -1 -1 #SIN FILLING
.... e así pechar
FIN
Valor END # #
Capa END #
En conclusión
Por iso, traballar con mapserver, aínda que é bastante sinxelo, faise complexo e moi limitado para traballos grandes porque todo está no .map. A maior desvantaxe é que todo se fai a pé, como definir cada cor nunha temática, e por este motivo xorden ferramentas como CartoWeb, que funciona en Mapserver pero trae complementos e exemplos incorporados con características que fan que esta versión primitiva pareza o Léame primeiro:
- Traballa marcos separados, con AJAX para actualiza-los por separado
- Analiza o código, sempre que un script redeseiga o .map en función dos criterios parametrizables
- Deslizamento dinámico de volta sen necesidade de actualización, coma se fose unha capa de flash
- Edición de vectores en liña, escritura de caché inmediata
- Descarga a capa en forma de vectores
- Exportar a Google Earth
- Xera PDF da implantación
Nunha seguinte ollaremos CartoWeb, aquí deixo a ligazón aos exemplos principais.
Hai forma de ter a saída estándar do modelo de phtml, grazas
Ola,
Intento chamar unha capa desde o. Mapa, do seguinte xeito:
CAPA
NAME test_houses
PUNTO TIPO
CONNECTIONTYPE OGR
CONEXIÓN #"virtual.ovf"
"
xxxxx
EXEC…….
eess_id
wkbPoint
WGS84
"
O meu problema é que o servizo DSN está a causar problemas: ao solicitar un GetCapabilities está devolvendo o contrasinal da base de datos... podo facer unha chamada a un ficheiro para evitar "regalar" o contrasinal ou é un erro de DSN???? Grazas!
MapServer é un popular proxecto de código aberto cuxo obxectivo é mostrar mapas espaciais dinámicos a través de Internet. Unha unidade montada é unha unidade que se asigna a un cartafol baleiro nun volume que usa o sistema de ficheiros NTFS. As unidades montadas funcionan como calquera outra unidade, pero son asignadas a camiños de unidade en vez de letras de unidades.