You are on page 1of 66

Curso Bsico de Mapserver

Criando mapas usando o Mapserver no modo CGI por meio de um programa em HTML
Prof. Dr. Marcelo Felipe Moreira Persegona

Crditos
Este curso foi elaborado a partir do Curso de Introduo ao MapServer desenvolvido por Eduardo Patto Kanegae (2005) e os livros Beginning Mapserver: Open Source GIS Development de Bill Kropla (2005) e Web Mapping: Ilustrated de Tyler Mitchell (2005). Adaptado e atualizado por Marcelo Felipe Moreira Persegona (2010), para curso de 20 horas em tecnologia Mapserver.

Apresentao do Professor
Marcelo Felipe Moreira Persegona doutor em Poltica e Gesto Ambiental pela Universidade de Braslia - UnB (2010) e mestre em Desenvolvimento Sustentvel com nfase em Poltica e Gesto de Cincia e Tecnologia pela UnB (2005) e graduado em Cincia da Computao pela Universidade Catlica de Braslia - UCB (1998). Atualmente professor da Faculdade SENAC e exerce a funo de Diretor de Projetos na IP Consultoria e Informtica Ltda., associado Associao Brasileira dos Analistas de Inteligncia Competitiva, pesquisador da Universidade de Braslia e da American Association for the Advancement of Sciences nos temas de Cincia e Tecnologia e Desenvolvimento Sustentvel. Tem experincia na rea de Cincia da Computao, atuando principalmente nos seguintes temas: gesto do conhecimento, gesto da informao, Tecnologia da Informao, Sistemas de Informaes Geogrficas (SIG) e mapserver.

Alguns conceitos

Sistemas de Coordenadas

Figura 2.3 - Latitude e Longitude

Projees Cartogrficas

Projeo de Mercator

Projeo ortogrfica

Projeo cnica Projeo de Peters

Projeo de Mollweide

Projeo de Holzel

Projeo de Goode, que modifica a de Moolweide

Projeo Azimutal Eqidistante Oblqua Centrada na Cidade de So Paulo Projeo Azimutal Eqidistante Polar

http://www.uff.br/mapprojections/mp_br.html

Recursos de representao de dados

Representao: polgono

Representao: ponto

Representao: linha

Representao: crculo

Representao: raster

Alguns conceitos

O que Software Livre?


Linus Torvalds, o pai do Linux, quando criou o sistema, no quis guard-lo para si. Quis montar um sistema que atendesse s suas necessidades, mas que tambm pudesse ser til para mais algum. Fez isso sem saber que estava acabando de fundar uma comunidade: a Comunidade Linux.

O que Software Livre? (continuao)


O conceito de free software, criado pelo pesquisador Richard Stallman, do laboratrio MIT AI Lab, baseia-se na idia de que um programa e seu cdigo fonte so conhecimentos cientficos e, assim como os teoremas matemticos, no podem ser guardados. A idia que, se eles forem escondidos do pblico, correremos o risco de ter uns poucos controlando o conhecimento retardando, assim, o avano da cincia.

O que Software Livre? (continuao)


Richard Stallman vem desenvolvendo essa idia com o projeto GNU (Gnu is Not Unix), criado em 1984, por meio da organizao Free Software Foundation (FSF). O projeto GNU iniciou a pesquisa e o desenvolvimento de diversos programas que so distribudos gratuitamente.

O que Software Livre? (continuao)


O novo conceito, batizado de open source, permitiria que se comercializasse um software de cdigo-fonte aberto ou se usasse parte de um cdigo comercial em um produto gratuito. Optando por programas free ou open source, paga-se o mesmo valor pelo produto final: zero. Isso timo para os bolsos das empresas, mas onde est o apelo para o profissional de TI recomendar e utilizar free software em seus projetos? A resposta : custos menores e margens de lucros maiores, que desejo de qualquer corporao. Como um projeto baseado software livre ou open source no tem os altos custos licenciamento de software, essa economia pode (e costuma) utilizada para contratar mais e melhores profissionais de TI. o em de ser

Por que Software Livre?


Porque o software livre possui quatro liberdades fundamentais: 1. A liberdade de executar o programa para qualquer propsito. 2. A liberdade de estudar como o programa funciona, e adapt-lo para as suas necessidades. Acesso ao cdigofonte um pr-requisito para esta liberdade. 3. A liberdade de redistribuir cpias de modo que voc possa ajudar ao seu prximo. 4. A liberdade de aperfeioar o programa e liberar os seus aperfeioamentos, de modo que toda a comunidade se beneficie. Acesso ao cdigo-fonte um pr-requisito para esta liberdade.

Caractersticas do MapServer

O MapServer pode ler dados nos seguintes formatos:


Dados vetoriais * ShapeFiles * ArcSDE * Oracle Spatial * PostGIS * MySQL * formatos OGR: a biblioteca OGR fornece acesso a diversos formatos vetoriais o ODBC( somente tabelas de pontos) o MapInfo o DGN o CSV o GML o e outros
KANEGAE, 2005.

O MapServer pode ler dados nos seguintes formatos:


Dados matriciais * TIFF/GeoTIFF * JPEG * GIF * PNG * EPPL7 * formatos GDAL: a biblioteca GDAL fornece acesso a diversos formatos matriciais o ECW o ENVI o HDF o ERDAS o PCRaster o e outros
KANEGAE, 2005.

Formatos de Sada
O MapServer pode gerar mapas nos seguintes formatos: * PNG * JPEG * GIF * WBMP (para WAP) * SWF (Flash) * PDF * SVG * DXF * formatos GDAL

KANEGAE, 2005.

Funcionalidades
* indexao espacial para ShapeFiles * customizao por meio de arquivos "template" ou MapScript * seleo de objetos por ponto, rea, valor ou item * suporte a fontes TrueType * legenda, barra de escala, mapa de referncia e controles de navegao * desenho de objetos de acordo com a escala * mapas temticos a partir de expresses lgicas, regulares ou constantes string * sistema anti-coliso para rtulos (labels) * reprojeo de dados cartogrficos em tempo de execuo (PROJ.4) * configurao de parmetros via URLs * compatibilidade OGC o WMS - implementa os modos servidor e cliente o WFS - implementa os modos servidor e cliente o WCS - implementa o modo servidor o WMC o SLD o GML o Filter encoding KANEGAE, 2005.

Modos de Funcionamento

O MapServer pode ser utilizado basicamente de trs modos: CGI, MapScript e WebServices. CGI
Esta a maneira mais simples de se trabalhar com o MapServer e tambm a abordagem que ser exposta neste curso. Quando se utiliza o MapServer em modo CGI, o seu arquivo executvel deve ser colocado em diretrio apropriado do servidor web. Este executvel ir receber parmetros de inicializao da aplicao webmapping, processar as requisies solicitadas e retornar ao aplicativo cliente (navegador) o resultado esperado (imagens do mapa, legenda, barra de escala, mapa de referncia, ou mesmo cdigos HTML).

KANEGAE, 2005.

MapScript
Historicamente o conceito do MapScript foi introduzido em 2001 quando a canadense DM Solutions disponibilizou a API do MapServer para a linguagem de programao PHP, em uma extenso chamada de PHP/MapScript. De maneira sucinta, o MapScript a disponibilizao dos recursos do MapServer para linguagens de programao. Dessa forma, pode-se combinar os recursos do MapServer com recursos da sua linguagem de programao preferida, visando a criao de aplicaes com um grau de customizao maior, eventualmente no atingido com aplicaes do MapServer em modo CGI. O MapServer MapScript est disponvel para as seguintes linguagens de programao: * PHP * Python * Perl * Ruby * TCL * Java * C#

Nota: este modo de funcionamento no ser exposto neste curso.


KANEGAE, 2005.

WebServices
O MapServer implementa algumas especificaes do Open Geospatial Consortium - e mais precisamente as especificaes WMS, WFS e WCS - que permitem o desenvolvimento de aplicaes que fazem o MapServer operar como um servio de mapas via web. Dessa forma, pode-se utilizar o MapServer para disponibilizar dados via web que sero acessados via aplicaes desktop como ArcView, ArcExplorer, ArcGIS, Quantum GIS, JUMP, uDig ou mesmo por aplicaes web. Nota: este modo de funcionamento no ser exposto neste curso.

KANEGAE, 2005.

Tipos de conexes do Mapserver

Exemplo de conexo com shapefile

Exemplo de conexo com PostgreSQL + PostGis

Comando para transformao de um shape file para SQL


shp2pgsql.exe s 4291 c I c:\shapes:\br_estados geo_br_estados > c:\sql\geo_br_estados.sql

Opes de parmetros do comando shp2pgsql para transformao de um shape file para SQL

Exemplo de conexo com WMS

Estrutura geral de uma aplicao MapServer

Estrutura geral de uma aplicao MapServer


1. Mapas Antes de mais nada, preciso ter em mos os mapas que se deseja publicar em uma aplicao MapServer. Os mapas so os dados de entrada da aplicao e devem estar em um formato que possa ser lido pelo MapServer. 2. MapFile O MapFile um arquivo com extenso .map, em formato texto puro, com todas as definies e configuraes iniciais necessrias para execuo de uma aplicao MapServer. Este arquivo lido pelo MapServer em cada interao do usurio com a aplicao e define diversas caractersticas da aplicao como: que mapas sero disponibilizados, como estes mapas sero apresentados, qual cor, com qual smbolo, e at que escala o usurio poder aproxim-lo. Ou seja, o MapFile define como os MAPAS (dados) sero apresentados ao usurio.
KANEGAE, 2005.

Estrutura geral de uma aplicao MapServer


3. Formulrio de inicializao Em aplicaes MapServer em modo CGI necessrio a presena de um "formulrio de inicializao" da aplicao. Este formulrio uma declarao em HTML que enviar ao executvel do MapServer parmetros bsicos para a inicializao da aplicao, tais como o caminho do MapFile e endereo (URL) do MapServer CGI. 4. Arquivos Template Os arquivos Template definem a interface ou design da aplicao. Ou seja, definem como os componentes gerados pelo MapServer (mapa, legenda, barra de escala, etc...) sero apresentados para o usurio e de que forma a poder interagir com a aplicao.

KANEGAE, 2005.

MITCHELL, 2005, p. 37.

Estrutura de diretrios para aplicaes WebGIS


Aplicao WebGIS

O objetivo do curso

Componentes da interface
Boto de Incio

Mapa de referncia Tipo de ao Tipo de imagem Zoom + Seleo de camadas

rea de trabalho

Busca textual

Instalao do MS4W com I3Geo

Instalar o MS4W com I3Geo


Para a instalao so necessrios os seguintes passos: 1. Acessar a URL:
http://mapas.mma.gov.br/download/

2. 3. 4. 5.

Baixar o arquivo:
v3_9_windows_ms4w_20080324.zip ou a verso mais atual

Descompactar o arquivo no raiz do c:\ Iniciar o servio do Apache contido dentro da distribuio ms4w
c:\ms4w\apache-install.bat

Testar o servidor de pginas Web acessando o localhost no navegador de Internet


http://localhost

6.

Testar o I3Geo
http://localhost/i3geo/index.htm

Baixar MS4W com I3Geo


http://mapas.mma.gov.br/download/

Baixar MS4W com I3Geo

Descompactar o arquivo baixado no c:\

Instalar o servio do Apache

Instalar o servio do Apache

Testar o servidor de pginas Web


http://localhost

Testar o I3Geo
http://localhost/i3geo

Testar o I3Geo
http://localhost/i3geo

Criando um mapa bsico

Camadas temtica a serem utilizadas


Contorno do Brasil
Camada do tipo polgono

Estados do Brasil
Camada do tipo polgono

Sedes Municipais
Camada do tipo ponto

Rodovias Federais
Camada do tipo linha

Spot Vegetation
Camada do tipo raster

Mapa com uma camada temtica

Exerccio 1 Mapa com uma camada temtica

Este primeiro exerccio, tem por finalidade criar um mapa simples do contorno do Brasil no seu navegador de Internet.

Exerccio 1 Mapa com uma camada temtica


Digite o script abaixo no programa SciTe.

Nomeie o arquivo como exercicio_1.map e grave-o na pasta:

C:/ms4w/curso_mapserver/mapfiles/

Exerccio 1 Mapa com uma camada temtica


Para testar o script, digite:

http://localhost/cgi-bin/mapserv.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_1.map&mode=map
O resultado ser:

Exerccio 1 Mapa com uma camada temtica

Detalhes dos parmetros passados


Dividindo a url digita no navegador de Internet em partes temos:
http://localhost/cgi-bin/mapserv.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_1.map&mode=map

onde:
localhost: o endereo do servidor web /cgi-bin/mapserv.exe: indica o arquivo executvel (binrio) do MapServer CGI. Neste caso, ele se encontra na pasta cgi-bin map: este parmetro indica a localizao do MapFile a ser interpretado pelo MapServer. O parmetro map essencial para a inicializao de uma aplicao MapServer. mode: este parmetro indica o modo de operao do MapServer. Neste caso, o modo map resultada na gerao da imagem do mapa da aplicao.

Exerccio 1 Mapa com uma camada temtica

Detalhes do Mapfile criado


Linha 1: a palavra reservada MAP define o incio do MapFile. O objeto MAP o elemento raiz de um MapFile e todos os outros objetos e propriedades so definidos hierarquicamente abaixo deste elemento. Na linha 20 a palavra END finaliza a definio do objeto MAP. Linha 2: a propriedade EXTENT define o retngulo envolvente do mapa na inicializao da aplicao. Os valores informados por estas coordenadas expressam a menor rea retangular que faa a cobertura dos mapas da aplicao em sua inicializao. Cada um dos quatro valores que compem a propriedade EXTENT deve ser informado em formato de nmero decimal, usando-se o ponto (.) para delimitao de casas decimais. O primeiro par de valores define o canto inferior esquerdo do retngulo envolvente e o segundo par de valores define o canto superior direito do retngulo.

Linha 3: a propriedade SHAPEPATH define o caminho relativo (ao MapFile) ou caminho absoluto dos arquivos de mapas (ShapeFiles, GeoTIFFs, etc...). Linha 4: a propriedade SIZE define as dimenses (largura X altura) da imagem do mapa. Os valores de Largura e Altura da imagem deve ser especificados em pixels.

Exerccio 1 Mapa com uma camada temtica

Detalhes do Mapfile criado


Linha 6: a palavra reservada LAYER inicia a declarao de um objeto layer. Na linha 18 a palavra END finaliza a declarao do objeto LAYER. Este objeto pode ser considerado o mais importante de qualquer MapFile, pois por meio da declarao de layers que se pode representar uma camada de informaes geogrficas. Os layers podem ser usados para a apresentao de mapas de pontos, linhas, polgonos, imagens (dados matriciais) ou apenas para exibio de objetos de textos (rtulos). Um MapFile pode conter vrios layers, sendo que o primeiro layer declarado aparecer por baixo de todos os layers na visualizao do mapa. E, sendo assim, por deduo, o ltimo layer declarado aparecer por cima de todos os layers no momento da visualizao do mapa. Linha 7: a propriedade NAME define o nome do layer para a aplicao. Este nome deve ser uma string de no mximo 20 caracteres e no deve conter espaos ou acentos. O nome do layer uma referncia que permitir aplicao, dentre outras coisas, realizar operaes como ligar ou desligar um layer, ou mesmo alterar propriedades e objetos de um dado layer. Linha 8: a propriedade TYPE define o tipo de layer a representar. O tipo informado deve corresponder ao tipo dos dados a serem representados no referido layer. Por exemplo, para exibir um layer de polgonos defina o tipo como POLYGON, para um layer de linhas utilize LINE, para pontos use POINT e para dados matriciais use RASTER. Linha 9: a propriedade DATA define o nome do arquivo de dados geogrficos a ser representado pelo layer. No caso de arquivos ShapeFile, apenas o nome do arquivo pode ser especificado, no havendo necessidade de especificar a extenso ".shp". No exemplo deste exerccio, apenas o nome do arquivo foi informado, ou seja, no houve a necessidade de se informar o caminho completo do arquivo pois este j estava definido na propriedade SHAPEPATH. Linha 10: a propriedade STATUS quando definida como DEFAUT, informa ao MapServer que o referido layer sempre ser desenhado. Ou seja, independente do usurio solicitar ou no o desenho de um layer com STATUS DEFAULT, este sempre ser desenhado. Outros valores possveis para esta propriedade so ON e OFF, mas neste caso so usados pelo MapServer conforme o usurio solicitar ou no a ativao do layer na interface da aplicao.

Exerccio 1 Mapa com uma camada temtica

Detalhes do Mapfile criado


Linha 12: todo layer de representao vetorial deve possuir no mnimo 1 (uma) classe. A palavra reservada CLASS indica o incio da declarao da classe e na linha 16 a palavra END encerra a definio da classe. Linha 13: a propriedade NAME de um objeto CLASS especifica o nome que aparecer na legenda do mapa representando a referida classe. Caso no se especifique esta propriedade, ento a classe no constar na legenda do mapa. Linha 14: a propriedade OUTLINECOLOR define, por meio de um cdigo RGB (do ingls "red green blue"), a cor usada para o desenho da borda dos polgonos. Linha 15: a propriedade COLOR define a cor usada para o preenchimento dos polgonos.

Onde obter os cdigos RGB de cores

Mapa com duas camadas temticas

Exerccio 2 Mapa com duas camadas temticas

Neste exerccio, veremos como fazer para adicionar duas camadas temticas (layers) ao MapFile. E veremos como apresentar a legenda das camadas que esto sendo exibidas.

Exerccio 2 Mapa com duas camadas temticas


Digite o script abaixo no programa SciTe.

Grave o script no arquivo chamado exercicio_2.map na pasta:

C:/ms4w/curso_mapserver/mapfiles/

Exerccio 2 Mapa com duas camadas temticas


Para carregar a camada temtica acrescida, digite:

http://localhost/cgi-bin/mapserv.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_2.map&mode=map &layer=estados


O resultado ser:

Exerccio 2 Mapa com duas camadas temticas


Para ver a legenda das camadas carregadas, digite:

http://localhost/cgi-bin/mapserv.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_2.map&mode=legend &layer=estados


O resultado ser:

Exerccio 2 Mapa com duas camadas temticas

Detalhes dos parmetros passados ao Mapserver


Dividindo a URL digita no navegador de Internet em partes temos:
http://localhost/cgi-bin/mapserv.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_1.map&mode=map&layer=estados

onde:
layer: este parmetro indica ao MapServer que o layer de nome estados deve ser desenhado. O uso deste parmetro foi necessrio porque este novo layer, ao contrrio do layer brasil, no est com o parmetro STATUS definido.

Mudando os parmetros em tempo de execuo

Exerccio 3 Mudando parmetros em tempo de execuo

O MapServer possui a caracterstica de permitir que propriedades de seus objetos no MapFile sejam manipulados em tempo de execuo. Para isto, parmetros podem ser passados por meio da URL de acesso ao MapServer CGI, conforme veremos nos exemplos do exerccio a seguir.

Exerccio 3

O exerccio anterior salve como exercicio_3.map.

Grave o script no arquivo chamado exercicio_3.map na pasta:

C:/ms4w/curso_mapserver/mapfiles/

Exerccio 3.1
Para alterar a cor do fundo da imagem, acrescente a URL anterior:

http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_3. map&mode=map&layer=estados&map_imagecolor=70+166+239
O resultado ser:

Neste link o parmetro map_imagecolor na URL faz a modificao da cor de fundo da imagem do mapa, que por padro da cor branca (255 255 255). Os sinais de "+" no cdigo da cor representam os "espaos".

Exerccio 3.2
Para o tipo de imagem, acrescente a URL anterior:

http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_3. map&mode=map&layer=estados&map_imagecolor=70+166+239&map
_imagetype=png O resultado apresentado ser a mesma imagem anterior, porm, agora a sua extenso do tipo png:

Neste exemplo a imagem de sada tem seu tipo alterado para PNG pelo parmetro map_imagetype. Experimente trocar o valor png na URL por outras opes como jpeg, pdf ou swf. NOTA: para que formatos de sada no comuns como SWF ou PDF sejam utilizados, necessrio que o MapServer tenha sido compilado com este recurso.

Exerccio 3.3
Para alterar vrios parmetros ao mesmo tempo, acrescente a URL anterior: http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_3.map&m ode=map&layer=estados&map_imagecolor=70+166+239&map_imagetype=p ng&map_size=600+450 O resultado ser a mesma imagem anterior, porm, agora a sua extenso do tipo png, fundo azul e o seu tamanho alterado de 400 x 300 para 600 x 450 pixels:

Utilizando expresses string de valor fixo, expresses regulares e expresses lgicas

Exerccio 4
A criao de mapas temticos no MapServer pode ser feita pelo uso de expresses. Pode-se utilizar expresses string de valor fixo, expresses regulares ou expresses lgicas. Vamos ver alguns exemplos.

Exerccio 4.1
Criando temas com expresses string.

Grave o script no arquivo chamado exercicio_41.map na pasta:

C:/ms4w/curso_mapserver/mapfiles/

Exerccio 4.1
Para testar o mapfile, digite:

http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_41 .map&mode=map&layer=estados
O resultado ser:

Detalhes dos parmetros passados ao Mapserver


Parmetros passados ao Mapserver:
neste exemplo, foram desenhados apenas dois estados do shapefile estados.shp. o campo NOMEUF do shapefile estados foi usado como classificador, por meio da propriedade CLASSITEM. O campo NOMEUF est no arquivo DBF do shapefile. Aba o arquivo DBF para saber quais arquivo podem ser utilizados como classificadores. o comando EXPRESSION utilizado nas linhas 29 e 35 fazem a seleo do que ser exibido. as expresses regulares que podem ser usadas em objetos do tipo CLASS esto descritas na tabela ao lado. Operador != = > < >= <= and or eq ge gt le lt KROPLA, 2005, p. 76. ne Tipo de dado Numrico Numrico Numrico Numrico Numrico Numrico Lgico Lgico Textual Textual Textual Textual Textual Textual

Exerccio 4.2
Criando temas com expresses regulares.

Grave o script no arquivo chamado exercicio_42.map na pasta:

C:/ms4w/curso_mapserver/mapfiles/

Exerccio 4.2
Para testar o mapfile, digite:

http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_42 .map&mode=map&layer=estados
O resultado ser:

Detalhes dos parmetros passados ao Mapserver


Parmetros passados ao Mapserver: neste exemplo, foram apenas exibidos os estados foram selecionados no parmetro EXPRESSION. o campo utilizado como classificador foi NOMEUF do shapefile estados, por meio da propriedade CLASSITEM. o comando EXPRESSION utilizado na linha 30 faz a seleo do que ser exibido. As expresses regulares em objetos do tipo CLASS, devem ser definidas entre barras ( / ). No caso da expresso regular definida nesta classe, sero desenhados os estados do Rio Grande do Sul, Santa Catarina e Paran. O caracter "|" simboliza o operador "OU" dentro da expresso regular.

Exerccio 4.3

Criando temas com expresses lgicas.

Grave o script no arquivo chamado exercicio_43.map na pasta:

C:/ms4w/curso_mapserver/mapfiles/

Exerccio 4.3
Para testar o mapfile, digite:

http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_43 .map&mode=map&layer=estados
O resultado ser o mapa do Brasil com os estados com mais de 20.000.000 de habitantes (So Paulo e Rio de Janeiro) representados.

Detalhes dos parmetros passados ao Mapserver


Parmetros passados ao Mapserver: neste exemplo, foram apenas exibidos os estados que possuem 20.000.000 ou mais de habitantes. o campo utilizado foi POPULACAO do shapefile estados.SHP. o comando EXPRESSION utilizado na linha 29 faz a seleo do que ser exibido. Neste exemplo, note que no h a definio da propriedade CLASSITEM. Afinal, o uso de expresses lgicas para a criao de classes dispensa o CLASSITEM, pois a expresso lgica pode avaliar um ou mais atributos do layer. Linha 29: as expresses lgicas devem ser definida entre parnteses e podem conter operadores como >, >=, < ou <=. Os campos (atributos) deve ser definidos com seus nomes entre colchetes [ ].

Colocando rtulo na camada temtica

Exerccio 5
Para testar o mapfile, digite: http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_5.map&m ode=map&layer=estados&layer=estados_rotulos O resultado ser:

Criando uma camada temtica com imagem Raster

Crie o mapfile:

Exerccio 6
Para testar o mapfile, digite: http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_6.map&la yer=imagem_spot_vegetation&mode=map O resultado ser:

Trabalhando com projees

Crie o mapfile:

Exerccio 7
Para testar o mapfile, digite: http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_7.map&la yer=raster_brasil&layer=estados&mode=map O resultado ser:

Criando uma interface em HTML

Exerccio 8
Neste exerccio iremos criar a nossa primeira interface de usurio em HTML. Funcionalidades:
Pgina de inicializao de variveis rea de trabalho Aproximar Afastar Mover o mapa pela rea de trabalho Seleo de camadas

Exerccio 8
Crie o mapfile que ser chamado pela interface do usurio.

Nomeie o arquivo como exercicio_8.map e grave-o na pasta:

C:/ms4w/curso_mapserver/mapfiles/

Exerccio 8

Exerccio 8
Como funciona:
Aps clicar no boto Iniciar da pgina de inicializao, os parmetros contidos no formulrio (program e map) so enviados ao executvel CGI do MapServer. Como no foi enviado o parmetro mode (que nos exerccios anteriores fora definido com valor map), o MapServer iniciado automaticamente com mode = browse. O modo browse o modo de navegao por interface de usurio e o MapServer procurar pelo arquivo web05_template.html que foi definido na propriedade TEMPLATE do objeto WEB na linha 13 do MapFile exercicio_5.map. Existindo o arquivo Template, o MapServer vai processar este arquivo, e substituir todas as palavras entre colchetes [ ] por valores especiais que sero preenchidos pelo MapServer.

Exerccio 8
Como funciona:

KANEGAE, 2005.

Exerccio 8
Criando a pgina de inicializao da interface do usurio.

Nomeie o arquivo como web08_iniciar.html e grave-o na pasta:

C:/ms4w/apache/htdocs/curso_mapserver/templates/

Exerccio 8
Criando a interface do usurio.

Nomeie o arquivo como web08_template.html e grave-o na pasta :

C:/ms4w/apache/htdocs/curso_mapserver/templates/

Exerccio 8
Como funciona:
Uma vez que o arquivo template web05_template.html foi encontrado pelo MapServer, ser realizada a substituio de valores definidos entre colchetes por valores gerados pelo MapServer em tempo de execuo. Veja a lista das substituies realizadas no arquivo web05_template.html:
Linha 6: nesta linha define-se o action do formulrio com o valor da varivel [program]. Esta varivel enviada pela primeira vez pelo formulrio de inicializao (no arquivo web05_iniciar.html) e deve ser mantida pela declarao feita na linha 8. Linha 8: nesta linha a declarao de um objeto hidden que possui seu nome definido como "program" e seu valor ser a substituio do texto "[program]" pela URL de endereo do MapServer CGI. Linha 9: tal qual ocorre com a linha 8, temos a declarao de um objeto hidden, nomeado como "map" e seu valor ser a substituio do texto "[map]" pelo caminho do MapFile. Linha 10: o parmetro imgext necessrio para que a aplicao contenha a informao sobre qual o retngulo envolvente atual. Ou seja, toda vez que o MapServer executado, ele precisa saber quais as coordenadas do retngulo envolvente que a aplicao est naquele momento. O valor "[mapext]" ser substitudo pelas coordenadas do retngulo envolvente corrente em cada interao com a aplicao. Linha 11: o parmetro imgxy ter o seu valor substitudo pela string "[center]". A palavra "[center]" calcula as coordenadas do centro da imagem em pixels. E o parmetro imgxy com este valor servir para *simular* um clique bem no centro da imagem quando o usurio clicar no boto Atualizar.

Exerccio 8
Como funciona:
Linha 12: o parmetro zoomsize define o fator de zoom que ser usado nas operaes de aproximar (zoom in) e afastar (zoom out). Linha 14: esta linha define o "mapa clicvel" para a aplicao. O texto "[img]" ser substitudo pela URL da imagem temporria que foi gerada pelo MapServer. A cada interao com a aplicao, o MapServer ir gerar uma imagem temporria dentro da pasta definida em MAP->WEB->IMAGEPATH, que ser a imagem resultante da solicitao do usurio. Note tambm que toda vez que o usurio clica sobre este mapa de navegao, so enviados para o MapServer CGI dois parmetros essenciais para o correto funcionamento do sistema: img.x e img.y - estes parmetros so as coordenadas (em pixels) do exato ponto clicado pelo usurio. Linhas 18, 19 e 20: essas trs linhas definem os controles de Zoom da aplicao. O parmetro zoomdir pode assumir 3 valores: 1 para aproximar (zoom in), 0 para mover (pan) e -1 para afastar (zoom out). Os valores "[zoomdir_1_check]", "[zoomdir_0_check]" e "[zoomdir_-1_check]" so processados pelo MapServer em cada interao e servem para deixar a ltima opo que o usurio escolheu j selecionada aps o processamento da interao. Linhas 25, 26, 27 e 28: estas linhas definem os controles de exibir/ocultar layers da aplicao. Se voc ligar um destes layers e interagir na aplicao, aps o processamento da solicitao poder notar que o layer ligado anteriormente j aparecer ligado na caixa de seleo. Isto ocorre pelo processamento das variveis "[estados_check], "[rodovias_check], "[estados_check], "[sedes_municipais_check] e "[spot_vgt_brasil_check]".

Uma vez que o arquivo template processado com as devidas substituies, o resultado apresentado no navegador do usurio como uma pgina HTML.

Modo map e modo browse

Crie o mapfile que ser chamado pela interface do usurio.

Crie a interface do usurio.

Exerccio 9
Para testar o mapfile, digite: http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_9.map&la yer=estados O resultado ser a mudana de posio do mapa a cada clique na rea de trabalho:

Colocando barra de escala dentro de um mapa

Crie o mapfile:

Exerccio 10
Para testar o mapfile, digite: http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_10.map& layer=estados O resultado ser:

Colocando legenda dentro de um mapa

Crie o mapfile:

Exerccio 11
Para testar o mapfile, digite: http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_11.map& layer=estados O resultado ser:

Fazendo consulta textual em um mapa

Exerccio 12

Integrando tudo em uma interface de usurio


Projeto do curso

Onde obter mais informaes

Onde obter mais informaes


Programa I3Geo (Apache + I3Geo + Mapserver + outros programas) http://mapas.mma.gov.br/download/ Banco de dados PostgreSQL http://www.postgresql.org/ PostGIS http://postgis.refractions.net/

Onde obter mais informaes

http://www.mapserver.org http://www.mma.gov.br http://pt.wikibooks.org/wiki/I3geo http://www.softwarepublico.gov.br

Onde obter mais informaes

www.maptools.org

Obrigado!!!
Prof. Dr. Marcelo Felipe Moreira Persegona marcelo.persegona@gmail.com

Nossa arte o conhecimento!

Referncias Bibliogrficas
KANEGAE, Eduardo Patto. Curso de Introduo ao MapServer. 2005. KROPLA, Bill. Beginning Mapserver: Open Source GIS Development. Berkeley: Apress, 2005. Mitchell, Tyler. Web Mapping: Ilustrated. Sebastopol: OReilly, 2005.

You might also like