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.

1

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

2

Sistemas de Coordenadas

Figura 2.3 - Latitude e Longitude

Projeções Cartográficas

3

Projeção de Mercator

Projeção ortográfica

Projeção cônica Projeção de Peters

Projeção de Holzel

Projeção de Mollweide

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

4

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

Recursos de representação de dados

5

Representação: polígono

Representação: ponto

6

Representação: linha

Representação: círculo

7

Representação: raster

Alguns conceitos

8

O que é Software Livre? Linus Torvalds, o “pai do Linux”, quando criou o sistema, não quis guardá-lo para si. Quis montar um sistema que atendesse às suas necessidades, mas que também pudesse ser útil para mais alguém. Fez isso sem saber que estava acabando de “fundar” uma comunidade: a Comunidade Linux.

O que é Software Livre? (continuação) O conceito de free software, criado pelo pesquisador Richard Stallman, do laboratório MIT AI Lab, baseia-se na idéia de que um programa e seu código fonte são conhecimentos científicos e, assim como os teoremas matemáticos, não podem ser guardados. A idéia é que, se eles forem escondidos do público, correremos o risco de ter uns poucos controlando o conhecimento – retardando, assim, o avanço da ciência.

9

O que é Software Livre? (continuação) Richard Stallman vem desenvolvendo essa idéia com o projeto GNU (Gnu is Not Unix), criado em 1984, por meio da organização Free Software Foundation (FSF). O projeto GNU iniciou a pesquisa e o desenvolvimento de diversos programas que são distribuídos gratuitamente.

O que é Software Livre? (continuação) O novo conceito, batizado de open source, permitiria que se comercializasse um software de código-fonte aberto ou se usasse parte de um código 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 corporação. Como um projeto baseado software livre ou open source não 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

10

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

Características do MapServer

11

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.

12

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, 2005.

Funcionalidades * indexação espacial para ShapeFiles * customização por meio de arquivos "template" ou MapScript * seleção de objetos por ponto, área, valor ou item * suporte a fontes TrueType * legenda, barra de escala, 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, regulares ou constantes string * sistema anti-colisão para rótulos (labels) * reprojeção de dados cartográficos em tempo de execução (PROJ.4) * configuração de parâmetros 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.

13

Modos de Funcionamento

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

KANEGAE, 2005.

14

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, em uma extensão chamada de PHP/MapScript. De maneira sucinta, o MapScript é a disponibilização dos recursos do MapServer para linguagens de programação. Dessa forma, pode-se combinar os recursos do MapServer com recursos da sua linguagem de programação preferida, visando a criação de aplicações com um grau de customização maior, eventualmente não atingido com aplicações do MapServer em modo CGI. 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. KANEGAE, 2005.

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

KANEGAE, 2005.

15

Tipos de conexões do Mapserver

Exemplo de conexão com shapefile

16

Exemplo de conexão com PostgreSQL + PostGis

Comando para transformação 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

17

Opções de parâmetros do comando shp2pgsql para transformação de um shape file para SQL

Exemplo de conexão com WMS

18

Estrutura geral de uma aplicação MapServer

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

19

Estrutura geral de uma aplicação MapServer 3. 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. 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, tais como o caminho do MapFile e endereço (URL) do MapServer CGI. 4. Arquivos Template Os arquivos Template definem a interface ou design da aplicação. Ou seja, definem como os componentes gerados pelo MapServer (mapa, legenda, barra de escala, etc...) serão apresentados para o usuário e de que forma a poder interagir com a aplicação.

KANEGAE, 2005.

MITCHELL, 2005, p. 37.

20

Estrutura de diretórios para aplicações WebGIS Aplicação WebGIS

O objetivo do curso

21

Componentes da interface Botão de Início

Mapa de referência Tipo de ação

Seleção de camadas

Tipo de imagem Zoom + -

Área de trabalho

Busca textual

22

Instalação do MS4W com I3Geo

Instalar o MS4W com I3Geo Para a instalação são necessários os seguintes passos: 1. Acessar a URL: http://mapas.mma.gov.br/download/

2.

Baixar o arquivo: v3_9_windows_ms4w_20080324.zip ou a versão mais atual

3. 4.

Descompactar o arquivo no raiz do c:\ Iniciar o serviço do Apache contido dentro da distribuição ms4w c:\ms4w\apache-install.bat

5.

Testar o servidor de páginas Web acessando o localhost no navegador de Internet http://localhost

6.

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

23

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

Baixar MS4W com I3Geo

24

Descompactar o arquivo baixado no c:\

Instalar o serviço do Apache

25

Instalar o serviço do Apache

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

26

Testar o I3Geo http://localhost/i3geo

Testar o I3Geo http://localhost/i3geo

27

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

28

Mapa com uma camada temática

Exercício 1 – Mapa com uma camada temática

• Este primeiro exercício, tem por finalidade criar um mapa simples do contorno do Brasil no seu navegador de Internet.

29

Exercício 1 – Mapa com uma camada temática Digite o script abaixo no programa SciTe.

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

C:/ms4w/curso_mapserver/mapfiles/

Exercício 1 – Mapa com uma camada temática Para testar o script, digite:

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

30

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? map=/ms4w/curso_mapserver/mapfiles/exercicio_1.map&mode=map

onde: – localhost: é o endereço do servidor web – /cgi-bin/mapserv.exe: indica o arquivo executável (binário) do MapServer CGI. Neste caso, ele se encontra na pasta “cgi-bin” – map: este parâmetro indica a localização do MapFile a ser interpretado pelo MapServer. O parâmetro map é essencial para a inicialização de uma aplicação MapServer. – mode: este parâmetro indica o modo de operação do MapServer. Neste caso, o modo map resultada na geração da imagem do mapa da aplicação.

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. O objeto MAP é o elemento raiz de um MapFile e todos os outros objetos e propriedades são definidos hierarquicamente abaixo deste elemento. Na linha 20 a palavra END finaliza a definição do objeto MAP.



Linha 2: a propriedade EXTENT define o retângulo envolvente do mapa na inicialização da aplicação. 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. Cada um dos quatro valores que compõem a propriedade EXTENT deve ser informado em formato de número decimal, usando-se o ponto (.) para delimitação de casas decimais. 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.



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 dimensões (largura X altura) da imagem do mapa. Os valores de Largura e Altura da imagem deve ser especificados em pixels.

31

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. Na linha 18 a palavra END finaliza a declaração do objeto LAYER. 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. Os layers podem ser usados para a apresentação de mapas de pontos, linhas, polígonos, imagens (dados matriciais) ou apenas para exibição de objetos de textos (rótulos). Um MapFile pode conter vários layers, sendo que o primeiro layer declarado aparecerá por baixo de todos os layers na visualização do mapa. E, sendo assim, por dedução, o último layer declarado aparecerá por cima de todos os layers no momento da visualização do mapa.



Linha 7: a propriedade NAME define o nome do layer para a aplicação. Este nome deve ser uma string de no máximo 20 caracteres e não deve conter espaços ou acentos. O nome do layer é uma referência que permitirá à aplicação, dentre outras coisas, realizar operações 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 polígonos 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 geográficos a ser representado pelo layer. No caso de arquivos ShapeFile, apenas o nome do arquivo pode ser especificado, não havendo necessidade de especificar a extensão ".shp". No exemplo deste exercício, apenas o nome do arquivo foi informado, ou seja, não 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 usuário solicitar ou não o desenho de um layer com STATUS DEFAULT, este sempre será desenhado. Outros valores possíveis para esta propriedade são ON e OFF, 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.

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. 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.



Linha 13: a propriedade NAME de um objeto CLASS especifica o nome que aparecerá na legenda do mapa representando a referida classe. Caso não se especifique esta propriedade, então a classe não constará na legenda do mapa.



Linha 14: a propriedade OUTLINECOLOR define, por meio de um código RGB (do inglês "red green blue"), a cor usada para o desenho da borda dos polígonos.



Linha 15: a propriedade COLOR define a cor usada para o preenchimento dos polígonos.

32

Onde obter os códigos RGB de cores

Mapa com duas camadas temáticas

33

Exercício 2 – Mapa com duas camadas temáticas

• Neste exercício, veremos como fazer para adicionar duas camadas temáticas (layers) ao MapFile. • E veremos como apresentar a legenda das camadas que estão sendo exibidas.

Exercício 2 – Mapa com duas camadas temáticas Digite o script abaixo no programa SciTe.

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

C:/ms4w/curso_mapserver/mapfiles/

34

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=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.map&mode=legend &layer=estados O resultado será:

35

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.exe? map=/ms4w/curso_mapserver/mapfiles/exercicio_1.map&mode=map&layer=estados

onde: – layer: este parâmetro indica ao MapServer que o layer de nome estados deve ser desenhado. O uso deste parâmetro foi necessário porque este novo layer, ao contrário do layer brasil, não está com o parâmetro STATUS definido.

Mudando os parâmetros em tempo de execução

36

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. • Para isto, parâmetros podem ser passados por meio da URL de acesso ao MapServer CGI, conforme veremos nos exemplos do exercício a seguir.

Exercício 3

O exercício anterior salve como exercicio_3.map.

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

C:/ms4w/curso_mapserver/mapfiles/

37

Exercício 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 parâmetro map_imagecolor na URL faz a modificação da cor de fundo da imagem do mapa, que por padrão é da cor branca (255 255 255). Os sinais de "+" no código da cor representam os "espaços".

Exercício 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, porém, 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. Experimente trocar o valor png na URL por outras opções como jpeg, pdf ou swf. NOTA: para que formatos de saída não comuns como SWF ou PDF sejam utilizados, é necessário que o MapServer tenha sido compilado com este recurso.

38

Exercício 3.3 Para alterar vários parâmetros 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, porém, agora a sua extensão é do tipo png, fundo azul e o seu tamanho alterado de 400 x 300 para 600 x 450 pixels:

Utilizando expressões string de valor fixo, expressões regulares e expressões lógicas

39

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, expressões regulares ou expressões lógicas. Vamos ver alguns exemplos.

Exercício 4.1 Criando temas com expressões string.

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

C:/ms4w/curso_mapserver/mapfiles/

40

Exercício 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 parâmetros passados ao Mapserver •

Parâmetros 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 seleção do que será exibido. as expressões regulares que podem ser usadas em objetos do tipo CLASS estão descritas na tabela ao lado.

KROPLA, 2005, p. 76.

Operador

Tipo de dado

!=

Numérico

=

Numérico

>

Numérico


=

Numérico

, >=, < ou WEB->IMAGEPATH, que será a imagem resultante da solicitação do usuário. Note também que toda vez que o usuário clica sobre este mapa de navegação, são enviados para o MapServer CGI dois parâmetros essenciais para o correto funcionamento do sistema: img.x e img.y - estes parâmetros são as coordenadas (em pixels) do exato ponto clicado pelo usuário. • Linhas 18, 19 e 20: essas três linhas definem os controles de Zoom da aplicação. O parâmetro 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]" 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. • Linhas 25, 26, 27 e 28: estas linhas definem os controles de exibir/ocultar layers da aplicação. Se você ligar um destes layers e interagir na aplicação, após o processamento da solicitação poderá notar que o layer ligado anteriormente já aparecerá ligado na caixa de seleção. Isto ocorre pelo processamento das variáveis "[estados_check]“, "[rodovias_check]“, "[estados_check]“, "[sedes_municipais_check]“ e "[spot_vgt_brasil_check]".

– Uma vez que o arquivo template é processado com as devidas substituições, o resultado é apresentado no navegador do usuário como uma página HTML.

Modo map e modo browse

54

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

Crie a interface do usuário.

55

Exercício 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 mudança de posição do mapa a cada clique na área de trabalho:

Colocando barra de escala dentro de um mapa

56

Crie o mapfile:

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

57

Colocando legenda dentro de um mapa

Crie o mapfile:

58

Exercício 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

59

Exercício 12

60

61

62

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

63

Onde obter mais informações

Onde obter mais informações 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/

64

Onde obter mais informações

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

Onde obter mais informações

www.maptools.org

65

Obrigado!!! Prof. Dr. Marcelo Felipe Moreira Persegona [email protected]

Nossa arte é o conhecimento!

Referências Bibliográficas • KANEGAE, Eduardo Patto. Curso de Introdução ao MapServer. 2005. • KROPLA, Bill. Beginning Mapserver: Open Source GIS Development. Berkeley: Apress, 2005. • Mitchell, Tyler. Web Mapping: Ilustrated. Sebastopol: O’Reilly, 2005.

66