Curso Básico de Mapserver

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

Créditos
• Este curso foi elaborado a partir do Curso de Introdução 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.

Apresentação do Professor
Marcelo Felipe Moreira Persegona é doutor em Política e Gestão Ambiental pela Universidade de Brasília - UnB (2010) e mestre em Desenvolvimento Sustentável com ênfase em Política e Gestão de Ciência e Tecnologia pela UnB (2005) e graduado em Ciência da Computação pela Universidade Católica de Brasília - UCB (1998). Atualmente é professor da Faculdade SENAC e exerce a função de Diretor de Projetos na IP Consultoria e Informática Ltda., associado à Associação Brasileira dos Analistas de Inteligência Competitiva, pesquisador da Universidade de Brasília e da American Association for the Advancement of Sciences nos temas de Ciência e Tecnologia e Desenvolvimento Sustentável. Tem experiência na área de Ciência da Computação, atuando principalmente nos seguintes temas: gestão do conhecimento, gestão da informação, Tecnologia da Informação, Sistemas de Informações Geográficas (SIG) e mapserver.

Alguns conceitos

Sistemas de Coordenadas

Figura 2.3 - Latitude e Longitude

Projeções Cartográficas

Projeção de Mercator Projeção ortográfica Projeção cônica Projeção de Peters Projeção de Mollweide Projeção de Holzel Projeção de Goode. que modifica a de Moolweide Projeção Azimutal Eqüidistante Oblíqua Centrada na Cidade de São Paulo Projeção Azimutal Eqüidistante Polar .

http://www.br/mapprojections/mp_br.uff.html Recursos de representação de dados .

Representação: polígono Representação: ponto .

Representação: linha Representação: círculo .

Representação: raster Alguns conceitos .

Quis montar um sistema que atendesse às suas necessidades. assim como os teoremas matemáticos. A idéia é que. quando criou o sistema. criado pelo pesquisador Richard Stallman. correremos o risco de ter uns poucos controlando o conhecimento – retardando. o “pai do Linux”. O que é Software Livre? (continuação) O conceito de free software. do laboratório MIT AI Lab. não podem ser guardados. não quis guardá-lo para si.O que é Software Livre? Linus Torvalds. Fez isso sem saber que estava acabando de “fundar” uma comunidade: a Comunidade Linux. se eles forem escondidos do público. assim. o avanço da ciência. . mas que também pudesse ser útil para mais alguém. baseia-se na idéia de que um programa e seu código fonte são conhecimentos científicos e.

O que é Software Livre? (continuação) O novo conceito. criado em 1984. batizado de open source. que desejo de qualquer corporação.O que é Software Livre? (continuação) Richard Stallman vem desenvolvendo essa idéia com o projeto GNU (Gnu is Not Unix). 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. Optando por programas free ou open source. Como um projeto baseado software livre ou open source não tem os altos custos licenciamento de software. éo em de ser . paga-se o mesmo valor pelo produto final: zero. essa economia pode (e costuma) utilizada para contratar mais e melhores profissionais de TI. permitiria que se comercializasse um software de código-fonte aberto ou se usasse parte de um código comercial em um produto gratuito. Isso é ótimo para os bolsos das empresas. O projeto GNU iniciou a pesquisa e o desenvolvimento de diversos programas que são distribuídos gratuitamente. por meio da organização Free Software Foundation (FSF).

2. de modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para esta liberdade. e adaptá-lo para as suas necessidades. 3. A liberdade de aperfeiçoar o programa e liberar os seus aperfeiçoamentos. A liberdade de estudar como o programa funciona. A liberdade de executar o programa para qualquer propósito. Características do MapServer . Acesso ao códigofonte é um pré-requisito para esta liberdade. A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo. 4.Por que Software Livre? Porque o software livre possui quatro liberdades fundamentais: 1.

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. 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. . valor ou item * suporte a fontes TrueType * legenda. Funcionalidades * indexação espacial para ShapeFiles * customização por meio de arquivos "template" ou MapScript * seleção de objetos por ponto.implementa os modos servidor e cliente o WCS . regulares ou constantes string * sistema anti-colisão para rótulos (labels) * reprojeção de dados cartográficos em tempo de execução (PROJ. 2005.4) * configuração de parâmetros via URLs * compatibilidade OGC o WMS . mapa de referência e controles de navegação * desenho de objetos de acordo com a escala * mapas temáticos a partir de expressões lógicas.Formatos de Saída O MapServer pode gerar mapas nos seguintes formatos: * PNG * JPEG * GIF * WBMP (para WAP) * SWF (Flash) * PDF * SVG * DXF * formatos GDAL KANEGAE.implementa os modos servidor e cliente o WFS . barra de escala.implementa o modo servidor o WMC o SLD o GML o Filter encoding KANEGAE. área.

. mapa de referência. Este executável irá receber parâmetros de inicialização da aplicação webmapping. CGI Esta é a maneira mais simples de se trabalhar com o MapServer e também a abordagem que será exposta neste curso. barra de escala. ou mesmo códigos HTML). 2005. processar as requisições solicitadas e retornar ao aplicativo cliente (navegador) o resultado esperado (imagens do mapa.Modos de Funcionamento O MapServer pode ser utilizado basicamente de três modos: CGI. legenda. KANEGAE. Quando se utiliza o MapServer em modo CGI. MapScript e WebServices. o seu arquivo executável deve ser colocado em diretório apropriado do servidor web.

Dessa forma. pode-se combinar os recursos do MapServer com recursos da sua linguagem de programação preferida.MapScript Historicamente o conceito do MapScript foi introduzido em 2001 quando a canadense DM Solutions disponibilizou a API do MapServer para a linguagem de programação PHP.e mais precisamente as especificações WMS. uDig ou mesmo por aplicações web. KANEGAE. 2005.que permitem o desenvolvimento de aplicações que fazem o MapServer operar como um serviço de mapas via web. eventualmente não atingido com aplicações do MapServer em modo CGI. em uma extensão chamada de PHP/MapScript. visando a criação de aplicações com um grau de customização maior. Dessa forma. JUMP. KANEGAE. WebServices O MapServer implementa algumas especificações do Open Geospatial Consortium . WFS e WCS . Nota: este modo de funcionamento não será exposto neste curso. Quantum GIS. ArcGIS. . o MapScript é a disponibilização dos recursos do MapServer para linguagens de programação. O MapServer MapScript está disponível para as seguintes linguagens de programação: * PHP * Python * Perl * Ruby * TCL * Java * C# Nota: este modo de funcionamento não será exposto neste curso. ArcExplorer. De maneira sucinta. 2005. pode-se utilizar o MapServer para disponibilizar dados via web que serão acessados via aplicações desktop como ArcView.

Tipos de conexões do Mapserver Exemplo de conexão com shapefile .

exe –s 4291 –c –I c:\shapes:\br_estados geo_br_estados > c:\sql\geo_br_estados.sql .Exemplo de conexão com PostgreSQL + PostGis Comando para transformação de um shape file para SQL shp2pgsql.

Opções de parâmetros do comando shp2pgsql para transformação de um shape file para SQL Exemplo de conexão com WMS .

2.map. Os mapas são os dados de entrada da aplicação e devem estar em um formato que possa ser lido pelo MapServer. 2005. Este arquivo é lido pelo MapServer em cada interação do usuário com a aplicação e define diversas características da aplicação como: que mapas serão disponibilizados.Estrutura geral de uma aplicação MapServer Estrutura geral de uma aplicação MapServer 1. em formato texto puro. o MapFile define como os MAPAS (dados) serão apresentados ao usuário. com qual símbolo. e até que escala o usuário poderá aproximá-lo. é preciso ter em mãos os mapas que se deseja publicar em uma aplicação MapServer. KANEGAE. Ou seja. com todas as definições e configurações iniciais necessárias para execução de uma aplicação MapServer. . Mapas Antes de mais nada. como estes mapas serão apresentados. MapFile O MapFile é um arquivo com extensão . qual cor.

. 4. 2005.) serão apresentados para o usuário e de que forma a poder interagir com a aplicação. Este formulário é uma declaração em HTML que enviará ao executável do MapServer parâmetros básicos para a inicialização da aplicação.. Formulário de inicialização Em aplicações MapServer em modo CGI é necessário a presença de um "formulário de inicialização" da aplicação. MITCHELL. barra de escala. definem como os componentes gerados pelo MapServer (mapa. legenda.. 2005. tais como o caminho do MapFile e endereço (URL) do MapServer CGI. Arquivos Template Os arquivos Template definem a interface ou design da aplicação.Estrutura geral de uma aplicação MapServer 3. 37. KANEGAE. Ou seja. p. etc.

Estrutura de diretórios para aplicações WebGIS Aplicação WebGIS O objetivo do curso .

Componentes da interface Botão de Início Mapa de referência Tipo de ação Tipo de imagem Zoom + Seleção de camadas Área de trabalho Busca textual .

mma. 3.Instalação do MS4W com I3Geo Instalar o MS4W com I3Geo Para a instalação são necessários os seguintes passos: 1.bat Testar o servidor de páginas Web acessando o localhost no navegador de Internet http://localhost 6.gov.htm . Baixar o arquivo: v3_9_windows_ms4w_20080324. Testar o I3Geo http://localhost/i3geo/index.br/download/ 2.zip ou a versão mais atual Descompactar o arquivo no raiz do c:\ Iniciar o serviço do Apache contido dentro da distribuição ms4w c:\ms4w\apache-install. 4. 5. Acessar a URL: http://mapas.

Baixar MS4W com I3Geo
http://mapas.mma.gov.br/download/

Baixar MS4W com I3Geo

Descompactar o arquivo baixado no c:\

Instalar o serviço do Apache

Instalar o serviço do Apache

Testar o servidor de páginas Web
http://localhost

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

Criando um mapa básico Camadas temática a serem utilizadas • Contorno do Brasil – Camada do tipo polígono • Estados do Brasil – Camada do tipo polígono • Sedes Municipais – Camada do tipo ponto • Rodovias Federais – Camada do tipo linha • Spot Vegetation – Camada do tipo raster .

. tem por finalidade criar um mapa simples do contorno do Brasil no seu navegador de Internet.Mapa com uma camada temática Exercício 1 – Mapa com uma camada temática • Este primeiro exercício.

Exercício 1 – Mapa com uma camada temática Digite o script abaixo no programa SciTe. Nomeie o arquivo como exercicio_1.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_1. digite: http://localhost/cgi-bin/mapserv.map e grave-o na pasta: C:/ms4w/curso_mapserver/mapfiles/ Exercício 1 – Mapa com uma camada temática Para testar o script.map&mode=map O resultado será: .

). • . O parâmetro map é essencial para a inicialização de uma aplicação MapServer. GeoTIFFs. Os valores de Largura e Altura da imagem deve ser especificados em pixels. Na linha 20 a palavra END finaliza a definição do objeto MAP. etc. Neste caso. O objeto MAP é o elemento raiz de um MapFile e todos os outros objetos e propriedades são definidos hierarquicamente abaixo deste elemento. usando-se o ponto (. o modo map resultada na geração da imagem do mapa da aplicação. ele se encontra na pasta “cgi-bin” – map: este parâmetro indica a localização do MapFile a ser interpretado pelo MapServer.Exercício 1 – Mapa com uma camada temática Detalhes dos parâmetros passados • Dividindo a url digita no navegador de Internet em partes temos: http://localhost/cgi-bin/mapserv.exe: indica o arquivo executável (binário) do MapServer CGI. Os valores informados por estas coordenadas expressam a menor área retangular que faça a cobertura dos mapas da aplicação em sua inicialização.. Linha 4: a propriedade SIZE define as dimensões (largura X altura) da imagem do mapa..map&mode=map onde: – localhost: é o endereço do servidor web – /cgi-bin/mapserv. Cada um dos quatro valores que compõem a propriedade EXTENT deve ser informado em formato de número decimal. – mode: este parâmetro indica o modo de operação do MapServer. Linha 2: a propriedade EXTENT define o retângulo envolvente do mapa na inicialização da aplicação. • • Linha 3: a propriedade SHAPEPATH define o caminho relativo (ao MapFile) ou caminho absoluto dos arquivos de mapas (ShapeFiles.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_1. O primeiro par de valores define o canto inferior esquerdo do retângulo envolvente e o segundo par de valores define o canto superior direito do retângulo.) para delimitação de casas decimais. Exercício 1 – Mapa com uma camada temática Detalhes do Mapfile criado • Linha 1: a palavra reservada MAP define o início do MapFile. Neste caso.

não havendo necessidade de especificar a extensão ". mas neste caso são usados pelo MapServer conforme o usuário solicitar ou não a ativação do layer na interface da aplicação. Linha 14: a propriedade OUTLINECOLOR define. Linha 7: a propriedade NAME define o nome do layer para a aplicação. Por exemplo. então a classe não constará na legenda do mapa. linhas. sendo assim. Na linha 18 a palavra END finaliza a declaração do objeto LAYER. O tipo informado deve corresponder ao tipo dos dados a serem representados no referido layer. realizar operações como ligar ou desligar um layer. O nome do layer é uma referência que permitirá à aplicação. Este nome deve ser uma string de no máximo 20 caracteres e não deve conter espaços ou acentos. A palavra reservada CLASS indica o início da declaração da classe e na linha 16 a palavra END encerra a definição da classe. dentre outras coisas. Um MapFile pode conter vários layers. para pontos use POINT e para dados matriciais use RASTER. Linha 15: a propriedade COLOR define a cor usada para o preenchimento dos polígonos. Os layers podem ser usados para a apresentação de mapas de pontos. imagens (dados matriciais) ou apenas para exibição de objetos de textos (rótulos). No caso de arquivos ShapeFile. Ou seja. a cor usada para o desenho da borda dos polígonos. apenas o nome do arquivo pode ser especificado. Linha 9: a propriedade DATA define o nome do arquivo de dados geográficos a ser representado pelo layer. ou seja. não houve a necessidade de se informar o caminho completo do arquivo pois este já estava definido na propriedade SHAPEPATH. o último layer declarado aparecerá por cima de todos os layers no momento da visualização do mapa. sendo que o primeiro layer declarado aparecerá por baixo de todos os layers na visualização do mapa. informa ao MapServer que o referido layer sempre será desenhado. No exemplo deste exercício. • • • • • Exercício 1 – Mapa com uma camada temática Detalhes do Mapfile criado • Linha 12: todo layer de representação vetorial deve possuir no mínimo 1 (uma) classe. Este objeto pode ser considerado o mais importante de qualquer MapFile. pois é por meio da declaração de layers é que se pode representar uma camada de informações geográficas. Linha 8: a propriedade TYPE define o tipo de layer a representar. este sempre será desenhado. para um layer de linhas utilize LINE. independente do usuário solicitar ou não o desenho de um layer com STATUS DEFAULT. apenas o nome do arquivo foi informado. Caso não se especifique esta propriedade. polígonos. por dedução.shp". por meio de um código RGB (do inglês "red green blue"). Linha 10: a propriedade STATUS quando definida como DEFAUT. Linha 13: a propriedade NAME de um objeto CLASS especifica o nome que aparecerá na legenda do mapa representando a referida classe. Outros valores possíveis para esta propriedade são ON e OFF. ou mesmo alterar propriedades e objetos de um dado layer.Exercício 1 – Mapa com uma camada temática Detalhes do Mapfile criado Linha 6: a palavra reservada LAYER inicia a declaração de um objeto layer. • • • . E. para exibir um layer de polígonos defina o tipo como POLYGON.

Onde obter os códigos RGB de cores Mapa com duas camadas temáticas .

map na pasta: C:/ms4w/curso_mapserver/mapfiles/ . Exercício 2 – Mapa com duas camadas temáticas Digite o script abaixo no programa SciTe. • E veremos como apresentar a legenda das camadas que estão sendo exibidas. Grave o script no arquivo chamado exercicio_2.Exercício 2 – Mapa com duas camadas temáticas • Neste exercício. veremos como fazer para adicionar duas camadas temáticas (layers) ao MapFile.

Exercício 2 – Mapa com duas camadas temáticas Para carregar a camada temática acrescida. digite: http://localhost/cgi-bin/mapserv.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_2.map&mode=legend &layer=estados O resultado será: .map&mode=map &layer=estados O resultado será: Exercício 2 – Mapa com duas camadas temáticas Para ver a legenda das camadas carregadas. digite: http://localhost/cgi-bin/mapserv.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_2.

Exercício 2 – Mapa com duas camadas temáticas Detalhes dos parâmetros passados ao Mapserver • Dividindo a URL digita no navegador de Internet em partes temos: http://localhost/cgi-bin/mapserv.map&mode=map&layer=estados onde: – layer: este parâmetro indica ao MapServer que o layer de nome estados deve ser desenhado. ao contrário do layer brasil.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_1. Mudando os parâmetros em tempo de execução . O uso deste parâmetro foi necessário porque este novo layer. não está com o parâmetro STATUS definido.

Grave o script no arquivo chamado exercicio_3. • Para isto.Exercício 3 – Mudando parâmetros em tempo de execução • O MapServer possui a característica de permitir que propriedades de seus objetos no MapFile sejam manipulados em tempo de execução. conforme veremos nos exemplos do exercício a seguir. parâmetros podem ser passados por meio da URL de acesso ao MapServer CGI.map.map na pasta: C:/ms4w/curso_mapserver/mapfiles/ . Exercício 3 O exercício anterior salve como exercicio_3.

Experimente trocar o valor png na URL por outras opções como jpeg. é necessário que o MapServer tenha sido compilado com este recurso. NOTA: para que formatos de saída não comuns como SWF ou PDF sejam utilizados.1 Para alterar a cor do fundo da imagem. acrescente a URL anterior: http://localhost/cgibin/mapserv. porém.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_3. pdf ou swf.2 Para o tipo de imagem. agora a sua extensão é do tipo png: Neste exemplo a imagem de saída tem seu tipo alterado para PNG pelo parâmetro map_imagetype. Os sinais de "+" no código da cor representam os "espaços". que por padrão é da cor branca (255 255 255). acrescente a URL anterior: http://localhost/cgibin/mapserv.Exercício 3. Exercício 3. .exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_3. map&mode=map&layer=estados&map_imagecolor=70+166+239 O resultado será: Neste link o parâmetro map_imagecolor na URL faz a modificação da cor de fundo da imagem do mapa. map&mode=map&layer=estados&map_imagecolor=70+166+239&map _imagetype=png O resultado apresentado será a mesma imagem anterior.

agora a sua extensão é do tipo png. expressões regulares e expressões lógicas . fundo azul e o seu tamanho alterado de 400 x 300 para 600 x 450 pixels: Utilizando expressões string de valor fixo.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_3.Exercício 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. porém.3 Para alterar vários parâmetros ao mesmo tempo. acrescente a URL anterior: http://localhost/cgibin/mapserv.

Grave o script no arquivo chamado exercicio_41.Exercício 4 • A criação de mapas temáticos no MapServer pode ser feita pelo uso de expressões. Pode-se utilizar expressões string de valor fixo.1 Criando temas com expressões string.map na pasta: C:/ms4w/curso_mapserver/mapfiles/ . Exercício 4. Vamos ver alguns exemplos. expressões regulares ou expressões lógicas.

1 Para testar o mapfile. o campo NOMEUF do shapefile estados foi usado como classificador. 2005. foram desenhados apenas dois estados do shapefile estados. Aba o arquivo DBF para saber quais arquivo podem ser utilizados como classificadores. o comando EXPRESSION utilizado nas linhas 29 e 35 fazem a seleção do que será exibido. Operador != = > < >= <= – and or eq ge gt le lt KROPLA. por meio da propriedade CLASSITEM.Exercício 4. ne Tipo de dado Numérico Numérico Numérico Numérico Numérico Numérico Lógico Lógico Textual Textual Textual Textual Textual Textual – – . as expressões regulares que podem ser usadas em objetos do tipo CLASS estão descritas na tabela ao lado.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_41 . digite: http://localhost/cgibin/mapserv. O campo NOMEUF está no arquivo DBF do shapefile.map&mode=map&layer=estados O resultado será: Detalhes dos parâmetros passados ao Mapserver • Parâmetros passados ao Mapserver: – neste exemplo.shp. 76. p.

2 Criando temas com expressões regulares.map&mode=map&layer=estados O resultado será: . Grave o script no arquivo chamado exercicio_42.Exercício 4.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_42 .2 Para testar o mapfile. digite: http://localhost/cgibin/mapserv.map na pasta: C:/ms4w/curso_mapserver/mapfiles/ Exercício 4.

devem ser definidas entre barras ( / ). As expressões regulares em objetos do tipo CLASS. No caso da expressão regular definida nesta classe. Grave o script no arquivo chamado exercicio_43. por meio da propriedade CLASSITEM. Santa Catarina e Paraná. foram apenas exibidos os estados foram selecionados no parâmetro EXPRESSION. O caracter "|" simboliza o operador "OU" dentro da expressão regular.map na pasta: C:/ms4w/curso_mapserver/mapfiles/ . – o campo utilizado como classificador foi NOMEUF do shapefile estados. serão desenhados os estados do Rio Grande do Sul. – o comando EXPRESSION utilizado na linha 30 faz a seleção do que será exibido.Detalhes dos parâmetros passados ao Mapserver • Parâmetros passados ao Mapserver: – neste exemplo.3 Criando temas com expressões lógicas. Exercício 4.

– o comando EXPRESSION utilizado na linha 29 faz a seleção do que será exibido.Exercício 4. Os campos (atributos) deve ser definidos com seus nomes entre colchetes [ ]. digite: http://localhost/cgibin/mapserv. Neste exemplo. Detalhes dos parâmetros passados ao Mapserver • Parâmetros passados ao Mapserver: – neste exemplo. o uso de expressões lógicas para a criação de classes dispensa o CLASSITEM. .000 ou mais de habitantes.000. >=. pois a expressão lógica pode avaliar um ou mais atributos do layer. note que não há a definição da propriedade CLASSITEM. < ou <=.000.map&mode=map&layer=estados O resultado será o mapa do Brasil com os estados com mais de 20.000 de habitantes (São Paulo e Rio de Janeiro) representados. – o campo utilizado foi POPULACAO do shapefile estados.SHP. foram apenas exibidos os estados que possuem 20.3 Para testar o mapfile. Afinal.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_43 . – Linha 29: as expressões lógicas devem ser definida entre parênteses e podem conter operadores como >.

Colocando rótulo na camada temática .

exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_5.map&m ode=map&layer=estados&layer=estados_rotulos O resultado será: Criando uma camada temática com imagem Raster . digite: http://localhost/cgibin/mapserv.Exercício 5 Para testar o mapfile.

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

Trabalhando com projeções Crie o mapfile: .

Exercício 7 Para testar o mapfile.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_7. digite: http://localhost/cgibin/mapserv.map&la yer=raster_brasil&layer=estados&mode=map O resultado será: Criando uma interface em HTML .

• Funcionalidades: – – – – – – Página de inicialização de variáveis Área de trabalho Aproximar Afastar Mover o mapa pela área de trabalho Seleção de camadas Exercício 8 Crie o mapfile que será chamado pela interface do usuário.map e grave-o na pasta: C:/ms4w/curso_mapserver/mapfiles/ . Nomeie o arquivo como exercicio_8.Exercício 8 • Neste exercício iremos criar a nossa primeira interface de usuário em HTML.

Exercício 8 Exercício 8 • Como funciona: – Após clicar no botão Iniciar da página de inicialização. – Existindo o arquivo Template. os parâmetros contidos no formulário (program e map) são enviados ao executável CGI do MapServer. – O modo browse é o modo de navegação por interface de usuário e o MapServer procurará pelo arquivo web05_template. . e substituir todas as palavras entre colchetes [ ] por valores especiais que serão preenchidos pelo MapServer. Como não foi enviado o parâmetro mode (que nos exercícios anteriores fora definido com valor map).html que foi definido na propriedade TEMPLATE do objeto WEB na linha 13 do MapFile exercicio_5. o MapServer é iniciado automaticamente com mode = browse.map. o MapServer vai processar este arquivo.

Exercício 8 Criando a página de inicialização da interface do usuário. Nomeie o arquivo como web08_iniciar.Exercício 8 • Como funciona: KANEGAE. 2005.html e grave-o na pasta: C:/ms4w/apache/htdocs/curso_mapserver/templates/ .

Nomeie o arquivo como web08_template. Veja a lista das substituições realizadas no arquivo web05_template. nomeado como "map" e seu valor será a substituição do texto "[map]" pelo caminho do MapFile. • Linha 9: tal qual ocorre com a linha 8. . • Linha 10: o parâmetro imgext é necessário para que a aplicação contenha a informação sobre qual o retângulo envolvente atual. O valor "[mapext]" será substituído pelas coordenadas do retângulo envolvente corrente em cada interação com a aplicação. A palavra "[center]" calcula as coordenadas do centro da imagem em pixels. Esta variável é enviada pela primeira vez pelo formulário de inicialização (no arquivo web05_iniciar. ele precisa saber quais as coordenadas do retângulo envolvente que a aplicação está naquele momento.html e grave-o na pasta : C:/ms4w/apache/htdocs/curso_mapserver/templates/ Exercício 8 • Como funciona: – Uma vez que o arquivo template web05_template. toda vez que o MapServer é executado. • Linha 11: o parâmetro imgxy terá o seu valor substituído pela string "[center]". temos a declaração de um objeto hidden. • Linha 8: nesta linha a declaração de um objeto hidden que possui seu nome definido como "program" e seu valor será a substituição do texto "[program]" pela URL de endereço do MapServer CGI.html foi encontrado pelo MapServer. E o parâmetro imgxy com este valor servirá para *simular* um clique bem no centro da imagem quando o usuário clicar no botão Atualizar.html: • Linha 6: nesta linha define-se o action do formulário com o valor da variável [program]. Ou seja.html) e deve ser mantida pela declaração feita na linha 8.Exercício 8 Criando a interface do usuário. será realizada a substituição de valores definidos entre colchetes por valores gerados pelo MapServer em tempo de execução.

que será a imagem resultante da solicitação do usuário. Se você ligar um destes layers e interagir na aplicação.x e img. "[estados_check]“. • Linhas 18.estes parâmetros são as coordenadas (em pixels) do exato ponto clicado pelo usuário. Os valores "[zoomdir_1_check]". – Uma vez que o arquivo template é processado com as devidas substituições. Modo map e modo browse . 0 para mover (pan) e -1 para afastar (zoom out).Exercício 8 • Como funciona: • Linha 12: o parâmetro zoomsize define o fator de zoom que será usado nas operações de aproximar (zoom in) e afastar (zoom out). • Linhas 25. O parâmetro zoomdir pode assumir 3 valores: 1 para aproximar (zoom in). o MapServer irá gerar uma imagem temporária dentro da pasta definida em MAP->WEB->IMAGEPATH.y . • Linha 14: esta linha define o "mapa clicável" para a aplicação. o resultado é apresentado no navegador do usuário como uma página HTML. Note também que toda vez que o usuário clica sobre este mapa de navegação. após o processamento da solicitação poderá notar que o layer ligado anteriormente já aparecerá ligado na caixa de seleção. A cada interação com a aplicação. "[sedes_municipais_check]“ e "[spot_vgt_brasil_check]". "[rodovias_check]“. O texto "[img]" será substituído pela URL da imagem temporária que foi gerada pelo MapServer. são enviados para o MapServer CGI dois parâmetros essenciais para o correto funcionamento do sistema: img. Isto ocorre pelo processamento das variáveis "[estados_check]“. 26. 27 e 28: estas linhas definem os controles de exibir/ocultar layers da aplicação. 19 e 20: essas três linhas definem os controles de Zoom da aplicação. "[zoomdir_0_check]" e "[zoomdir_-1_check]" são processados pelo MapServer em cada interação e servem para deixar a última opção que o usuário escolheu já selecionada após o processamento da interação.

Crie o mapfile que será chamado pela interface do usuário. . Crie a interface do usuário.

digite: http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_9.map&la yer=estados O resultado será a mudança de posição do mapa a cada clique na área de trabalho: Colocando barra de escala dentro de um mapa .Exercício 9 Para testar o mapfile.

Crie o mapfile: Exercício 10 Para testar o mapfile.map& layer=estados O resultado será: . digite: http://localhost/cgibin/mapserv.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_10.

Colocando legenda dentro de um mapa Crie o mapfile: .

digite: http://localhost/cgibin/mapserv.Exercício 11 Para testar o mapfile.exe?map=/ms4w/curso_mapserver/mapfiles/exercicio_11.map& layer=estados O resultado será: Fazendo consulta textual em um mapa .

Exercício 12 .

.

.

Integrando tudo em uma interface de usuário Projeto do curso .

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

br Onde obter mais informações www.wikibooks.gov.softwarepublico.org http://www.Onde obter mais informações http://www.mapserver.br http://pt.mma.org .org/wiki/I3geo http://www.gov.maptools.

Berkeley: Apress. Tyler. 2005. Curso de Introdução ao MapServer. Sebastopol: O’Reilly. .persegona@gmail.Obrigado!!! Prof.com Nossa arte é o conhecimento! Referências Bibliográficas • KANEGAE. Eduardo Patto. Web Mapping: Ilustrated. • KROPLA. Beginning Mapserver: Open Source GIS Development. 2005. Dr. • Mitchell. 2005. Marcelo Felipe Moreira Persegona marcelo. Bill.

Sign up to vote on this title
UsefulNot useful