Como Mapserver funciona
A última vez que falamos sobre porque alguns critérios MapServer e os fundamentos da instalação. Agora vamos ver um pouco de seu funcionamento em um exercício com os mapas dos cuates de Chiapas.
Onde ele monta
Uma vez instalado o Apache, o diretório de publicação MapServer padrão é a pasta OSGeo4W diretamente sobre C: /
Dentro, existem diferentes pastas com aplicativos dependendo do que está instalado, mas a pasta para publicação deve ficar dentro do apache. Neste caso, a pasta chamada gis.
- Em seguida, no interior da pasta contém camadas de dados, orthophoto, etc.
- Na pasta etc, estão as fontes true type usadas para os rótulos, com uma extensão .ttf. Também aqui está um arquivo txt que os levanta e outro que define os símbolos.
- E, finalmente, nos httdocs pasta subir páginas da web que serviço.
O website
No exemplo, usarei o caso mostrado da última vez. Ele basicamente contém um arquivo de índice que redireciona para um arquivo com extensão phtml, e isso por sua vez aumenta as funções construídas em cima de um php e dos mapas. Uma pasta contém as imagens vinculadas à página.
Se olharmos para ele, o phtml é apenas o shell construído a partir de tabelas e chamadas para as funções mapscript / php. Você deve se levantar usando:
http://localhost/gis/gispalenque.phtml
Correndo pelo resultado mostrado:
- centro de função GMapDrawMap (),
- direito a chamada para mapa de teclas GMapDrawKeyMap (),
- barra de escala em baixo GMapDrawScaleBar (),
- e se funções de implantação, uma condição em relação à caixa de listagem if (! IsHtmlMode ()) echo " com decisões: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.
Já em execução, a tela se parece com isso:
Os arquivos .map
A combinação da publicação do Mapserver é o que o Apache lança, o que envia o php através MapScript e isso então sai dessa casca. Mas a maior parte da ciência está nos arquivos .map, não devem ser confundidos com aqueles gerados pelo Mapinfo, Manifold ou Mobile Mapper Office com a mesma extensão.
Esses .map são arquivos de texto que contêm o mapa na forma de script. Eles podem ser criados com programas de desktop como Quantum GIS, se você notar que há um para o mapa principal, um para o Keymap e dois para os serviços OGC wms e wfs. Vamos ver como o mapscript funciona:
MAPA
NOME PALENQUE_DEMO
STATUS ON
TAMANHO 600 450
symbolset ../etc/symbols.txt
604299 1933386 610503 1939300 extensão de todas mapa #VISTA de Palenque
#EXTENT 605786 1935102 608000 1938800 01 #SOLO DO SETOR
METROS UNIDADES
SHAPEPATH "../data"
ON TRANSPARENTE
IMAGECOLOR 255 255 255
fontset ../etc/fonts.txt
- MAP indica que inicia o script
- STATUS indica se o mapa por padrão está ligado ou não
- TAMANHO é o tamanho de implantação
- SYMBOLSET mostra o caminho dos símbolos
- EXTENT são as coordenadas de exibição. O símbolo # é usado para fazer anotações
- UNIDADES para unidades
- SHAPEPATH, o caminho onde as camadas são
- Tudo no final terminará com o comando END
No interior, o código começa com uma linha de comando e termina com END, por exemplo, para escala mínima e máxima; Diretório de imagens temporárias:
WEB
MINSCALE 2000000
MAXSCALE 50000000IMAGEPATH "C: \ OSGeo4W / tmp / ms_tmp /"
IMAGEURL "/ ms_tmp /"
END
A barra de escala:
SCALEBAR
IMAGECOLOR 255 255 255
LABEL
COR 0 0 0
TAMANHO PEQUENO
END
TAMANHO 300 5
COR 255 255 255
BACKGROUNDCOLOR 0 0 0
OUTLINECOLOR 0 0 0
UNITS quilômetros
INTERVALOS 3
STATUS ON
END
Uma camada raster: que fica em segundo plano, com uma descrição na lista como "Ortofoto", a partir de um tiff localizado na pasta de dados:
CAMADA
NOMBRE ortofoto
METADATA
"DESCRIÇÃO" "OrtoFoto"
END
TYPE RASTER
ESTADO DESLIGADO
DATA "C: \ OSGeo4W / apps / gis / data / ortofotoGral.tif"
#OFFSITE 0 0 0
END
Uma camada shp de polígonos, temáticos com base em critérios, levantando alguns dados em um modelo html, com uma etiqueta sans font, tamanho 6, cor preta e bordas brancas do buffer 5 ...
CAMADA
NOME setor02Zone
TYPE POLYGON
ESTADO DESLIGADO
TRANSPARÊNCIA 50
EXTENT 607852 1935706 610804 1938807 METADATA
"DESCRIÇÃO" "Tema por Setor de Valor 02"
"RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred prop Area Perimeter VALUE"
END
DADOS PALENQUE_SECTOR01
MODELO "ttt_query.html"
TOLERÂNCIA 5
#TOLERANCEUNITS PIXELS
LABELITEM "VALOR"
CLASSITEM "VALOR"
LABELCACHE ON
CLASSE
SYMBOL 1
COR 128 128 128
OUTLINECOLOR 0 0 0
NOME "ZonaNULL"
EXPRESSÃO ([VALOR] = 0)
LABEL
ANGLE AUTO
COR 0 0 0
FONT sans
TYPE TRUETYPE
POSIÇÃO cc
PARCIALMENTE FALSO
BUFFER 5
6 TAMANHO
OUTLINECOLOR 200 200 200
END
END #class 0 value
CLASSE
SYMBOL 3
COR 255 128 128
#COLOR -1 -1 -1 #SIN ENCHIMENTO
.... e tão perto
END
END #Class Value
END # Camada
Em conclusão
Conseqüentemente, trabalhar com mapserver, embora seja bastante simples, torna-se complexo e muito limitado para trabalhos grandes porque tudo está no .map. A maior desvantagem é que tudo é feito a pé, como definir cada cor em um tema, e por isso surgem ferramentas como o CartoWeb, que funciona no Mapserver, mas traz plugins embutidos e exemplos com características que fazem essa versão primitiva parecer a readme primeiro:
- quadros separados para trabalhar com AJAX, a fim de atualizá-los separadamente
- Analisando o código, de modo que um script reescrever o .map com base em critérios configuráveis
- deslocamento para trás dinâmico sem a necessidade de actualização, como se fosse uma camada de flash
- vector edição on-line, escrever-on de cache
- camada de descarga em forma de vector
- Exportar para o Google Earth
- Implantação Gerar PDF
Em seguida, vamos dar uma olhada CartoWeb, aqui deixo o link para os principais exemplos.
Não há forma de ter o padrão modelo de saída phtml graças
Olá,
Eu estou tentando chamar uma camada do .map da seguinte forma:
CAMADA
casas_prueba NOME
PONTO DE TIPO
ConnectionType OGR
CONEXÃO #”virtual.ovf”
"
xxxxx
EXE…….
Eess_id
WkbPoint
WGS84
"
Meu problema é que o serviço DSN está causando problemas: ao solicitar um GetCapabilities ele está retornando a senha do banco de dados... posso fazer uma chamada para um arquivo para evitar "dar" a senha ou é um erro de DSN???? Obrigado!
O MapServer é um popular projeto Open Source cujo objetivo é exibir mapas espaciais dinâmicos pela Internet. Uma unidade montada é uma unidade que é mapeada para uma pasta vazia em um volume que usa o sistema de arquivos NTFS. As unidades montadas funcionam como qualquer outra unidade, mas são atribuídos caminhos de unidade em vez de letras de unidade.