mapserver apostila

38
Mapserver 16 de maio de 2007

Upload: dtisot

Post on 24-Jun-2015

590 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Mapserver Apostila

Mapserver16 de maio de 2007

Page 2: Mapserver Apostila

Sumário

I Sobre essa Apostila 3

II Informações Básicas 5

III MapServer 10

1 O que é o MapServer 11

2 Plano de ensino 122.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.6 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.7 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.8 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.9 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Introdução ao MapServer 153.1 Lição 1 - Introdução ao MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1.1 O que é o Mapserver em linhas gerais? . . . . . . . . . . . . . . . . . . . . . 153.1.2 Qual o poder disso? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.1.3 História . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4 Instalação do MapServer 184.1 Lição 2 - Instalando o MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1.1 Instalando binário do Mapserver com o apt-get . . . . . . . . . . . . . . . . . 184.1.2 Instalando o MapServer pelo código fonte . . . . . . . . . . . . . . . . . . . . 204.1.3 Testando o Apache e o MapServer . . . . . . . . . . . . . . . . . . . . . . . . 21

5 MapServer em mapas estáticos 245.1 Lição 3 - Mapserver com mapas estáticos . . . . . . . . . . . . . . . . . . . . . . . . 24

5.1.1 Mapserver com mapas estáticos . . . . . . . . . . . . . . . . . . . . . . . . . 245.1.2 Utilizando o Legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.1.3 Utilizando o Scalebar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1

Page 3: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

6 MapServer: exemplo prático 306.1 Lição 4 - MapServer: exemplo prático . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6.1.1 Exemplo prático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306.1.2 Página de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

7 MapServer com o PostGIS 347.1 Lição 5 - MapServer com o PostGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

7.1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347.1.2 MapServer com PostGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2

Page 4: Mapserver Apostila

Parte I

Sobre essa Apostila

3

Page 5: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Conteúdo

O conteúdo dessa apostila é fruto da compilação de diversos materiais livres publicados na in-ternet, disponíveis em diversos sites ou originalmente produzido no CDTC em http://www.cdtc.org.br.

O formato original deste material bem como sua atualização está disponível dentro da licençaGNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seção demesmo nome, tendo inclusive uma versão traduzida (não oficial).

A revisão e alteração vem sendo realizada pelo CDTC ([email protected]) desde outubrode 2006. Críticas e sugestões construtivas são bem-vindas a qualquer tempo.

Autores

A autoria deste é de responsabilidade de Christian do Santos Ferreira ([email protected]).

O texto original faz parte do projeto Centro de Difusão de Tecnologia e Conhecimento, quevem sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informação) em conjunto comoutros parceiros institucionais, atuando em conjunto com as universidades federais brasileirasque tem produzido e utilizado Software Livre, apoiando inclusive a comunidade Free Softwarejunto a outras entidades no país.

Informações adicionais podem ser obtidas através do email [email protected], ou dahome page da entidade, através da URL http://www.cdtc.org.br.

Garantias

O material contido nesta apostila é isento de garantias e o seu uso é de inteira responsabi-lidade do usuário/leitor. Os autores, bem como o ITI e seus parceiros, não se responsabilizamdireta ou indiretamente por qualquer prejuízo oriundo da utilização do material aqui contido.

Licença

Copyright ©2006, Instituto Nacional de Tecnologia da Informação ([email protected]) .

Permission is granted to copy, distribute and/or modify this document under the termsof the GNU Free Documentation License, Version 1.1 or any later version published bythe Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOS-TILA. A copy of the license is included in the section entitled GNU Free DocumentationLicense.

4

Page 6: Mapserver Apostila

Parte II

Informações Básicas

5

Page 7: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Sobre o CDTC

Objetivo Geral

O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a dissemina-ção de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito dodesenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira.

Objetivo Específico

Auxiliar o Governo Federal na implantação do plano nacional de software não-proprietário ede código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre osservidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercadonacional a adotar novos modelos de negócio da tecnologia da informação e de novos negóciosde comunicação com base em software não-proprietário e de código fonte aberto, oferecendotreinamento específico para técnicos, profissionais de suporte e funcionários públicos usuários,criando grupos de funcionários públicos que irão treinar outros funcionários públicos e atuar comoincentivadores e defensores de produtos de software não proprietários e código fonte aberto, ofe-recendo conteúdo técnico on-line para serviços de suporte, ferramentas para desenvolvimento deprodutos de software não proprietários e de seu código fonte livre, articulando redes de terceiros(dentro e fora do governo) fornecedoras de educação, pesquisa, desenvolvimento e teste de pro-dutos de software livre.

Guia do aluno

Neste guia, você terá reunidas uma série de informações importantes para que você comeceseu curso. São elas:

• Licenças para cópia de material disponível

• Os 10 mandamentos do aluno de Educação a Distância

• Como participar dos foruns e da wikipédia

• Primeiros passos

É muito importante que você entre em contato com TODAS estas informações, seguindo oroteiro acima.

Licença

Copyright ©2006, Instituto Nacional de Tecnologia da Informação ([email protected]).

6

Page 8: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

É dada permissão para copiar, distribuir e/ou modificar este documento sob os termosda Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posteriorpúblicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSAAPOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu-mentação Livre GNU".

Os 10 mandamentos do aluno de educação online

• 1. Acesso à Internet: ter endereço eletrônico, um provedor e um equipamento adequado épré-requisito para a participação nos cursos a distância.

• 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá-tica é necessário para poder executar as tarefas.

• 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân-cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal,dos colegas e dos professores.

• 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seuscolegas de turma respeitando-os e fazendo ser respeitado pelo mesmo.

• 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisãoe a sua recuperação de materiais.

• 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações erealizá-las em tempo real.

• 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre.

• 8. Flexibilidade e adaptação: requisitos necessário à mudança tecnológica, aprendizagense descobertas.

• 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente éponto - chave na comunicação pela Internet.

• 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual nãocontrola a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração.

Como participar dos fóruns e Wikipédia

Você tem um problema e precisa de ajuda?

Podemos te ajudar de 2 formas:

A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso:

. O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informaçõesque sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a

7

Page 9: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação queinteresse ao grupo, favor postá-la aqui.Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico docurso. É recomendado que você faça uso do Forum de dúvidas gerais que lhe dá recursos maisefetivos para esta prática.

. O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativopara solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadasa todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podemajudar.Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com aformalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópicoé recomendável ver se a sua pergunta já foi feita por outro participante.

A segunda forma se dá pelas Wikis:

. Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par-ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podemser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece umótimo suporte a processos de aprendizagem colaborativa. A maior wiki na web é o site "Wikipé-dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, porpessoas de todas as partes do mundo. Acesse-a em português pelos links:

• Página principal da Wiki - http://pt.wikipedia.org/wiki/

Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo!

Primeiros Passos

Para uma melhor aprendizagem é recomendável que você siga os seguintes passos:

• Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar;

• Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar dasferramentas básicas do mesmo;

• Entrar nas lições seguindo a seqüência descrita no Plano de Ensino;

• Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais.

Perfil do Tutor

Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores.

O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivosvalores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita asidéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.

8

Page 10: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e,para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutorou instrutor:

• fornece explicações claras acerca do que ele espera, e do estilo de classificação que iráutilizar;

• gosta que lhe façam perguntas adicionais;

• identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por-que motivo a classificação foi ou não foi atribuída’;

• tece comentários completos e construtivos, mas de forma agradável (em contraste com umreparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, deameaça e de nervossismo’)

• dá uma ajuda complementar para encorajar um estudante em dificuldade;

• esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente;

• ajuda o estudante a alcançar os seus objetivos;

• é flexível quando necessário;

• mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso,talvez numa fase menos interessante para o tutor);

• escreve todas as correções de forma legível e com um nível de pormenorização adequado;

• acima de tudo, devolve os trabalhos rapidamente;

9

Page 11: Mapserver Apostila

Parte III

MapServer

10

Page 12: Mapserver Apostila

Capítulo 1

O que é o MapServer

O MapServer foi originalmente devesenvolvido pela Universidade de Minnesota (UMN) no pro-jeto ForNet em cooperação com a NASA e o Departamento de Recursos Naturais de Minnesota.

Este software é um ambiente que permite que aplicações disponibilizem através de web seusdados espaciais. Esse ambiente é altamente configurável e permite sairmos de simples mapasestáticos até elaborados sites interativos em tempo real. Porém o Mapserver não é um SIG(Sistema de Informações Geográficos), ou seja, ele não possui ferramentas para a análise dedados espaciais, afinal seu foco (como o próprio nome já diz) é disponibilizar mapas via web.

11

Page 13: Mapserver Apostila

Capítulo 2

Plano de ensino

2.1 Objetivo

Qualificar técnicos e programadores que desejam usar o Mapserver como interface para visu-alização de informações georreferenciadas.

2.2 Público Alvo

Técnicos e Programadores que desejam trabalhar com Mapserver

2.3 Pré-requisitos

Os usuários deverão ter conhecimento básico acerca da lógica de programação. É desejávelo conhecimento de linguagens client-side para web (como HTML ou JavaScript) também.

2.4 Descrição

O curso de Mapserver será realizado na modalidade EAD e utilizará a plataforma Moodlecomo ferramenta de aprendizagem. O material didático estará disponível on-line de acordo comas datas pré-estabelecidas no calendário. A versão utilizada para o Mapserver será a 4.10

Todo o material está no formato de lições, e estará disponível ao longo do curso. As liçõespoderão ser acessadas quantas vezes forem necessárias. Aconselhamos a leitura de "Ambien-tação do Moodle", para que você conheça o produto de Ensino a Distância, evitando dificuldadesadvindas do "desconhecimento"sobre o mesmo.

Ao final de cada semana do curso será disponibilizada a prova referente ao módulo estudadoanteriormente que também conterá perguntas sobre os textos indicados. Utilize o material decada semana e os exemplos disponibilizados para se preparar para prova.

Os instrutores estarão a sua disposição ao longo de todo curso. Qualquer dúvida deve serdisponibilizada no fórum ou enviada por e-mail. Diariamente os monitores darão respostas eesclarecimentos.

12

Page 14: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

2.5 Metodologia

O curso está dividido da seguinte maneira:

2.6 Cronograma

• Lição 1 - Introdução ao MapServer

• Lição 2 - Instalando o MapServer

• Lição 3 - Mapserver com mapas estáticos

• Lição 4 - MapServer: exemplo prático

• Lição 5 - MapServer com o PostGIS

As lições contém o contéudo principal. Elas poderão ser acessadas quantas vezes forem neces-sárias, desde que esteja dentro da semana programada. Ao final de uma lição, você receberáuma nota de acordo com o seu desempenho. Responda com atenção às perguntas de cada lição,pois elas serão consideradas na sua nota final. Caso sua nota numa determinada lição for menordo que 6.0, sugerimos que você faça novamente esta lição.Ao final do curso será disponibilizada a avaliação referente ao curso. Tanto as notas das liçõesquanto a da avaliação serão consideradas para a nota final. Todos os módulos ficarão visíveispara que possam ser consultados durante a avaliação final.Aconselhamos a leitura da "Ambientação do Moodle"para que você conheça a plataforma de En-sino a Distância, evitando dificuldades advindas do "desconhecimento"sobre a mesma.Os instrutores estarão a sua disposição ao longo de todo curso. Qualquer dúvida deverá serenviada no fórum. Diariamente os monitores darão respostas e esclarecimentos.

2.7 Programa

O curso de Mapserver oferecerá o seguinte conteúdo:

• Introdução ao MapServer

• Instalação do MapServer

• MapServer em mapas estáticos

• MapServer: exemplo prático

• MapServer com o PostGIS

2.8 Avaliação

Toda a avaliação será feita on-line.Aspectos a serem considerados na avaliação:

• Iniciativa e autonomia no processo de aprendizagem e de produção de conhecimento;

13

Page 15: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• Capacidade de pesquisa e abordagem criativa na solução dos problemas apresentados.

Instrumentos de avaliação:

• Participação ativa nas atividades programadas.

• Avaliação ao final do curso.

• O participante fará várias avaliações referente ao conteúdo do curso. Para a aprovação eobtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordocom a fórmula abaixo:

• Nota Final = ((ML x 7) + (AF x 3)) / 10

• ML = Média aritmética das lições

• AF = Avaliações

2.9 Bibliografia

• Site oficial: http://mapserver.gis.umn.edu/

14

Page 16: Mapserver Apostila

Capítulo 3

Introdução ao MapServer

Uma pequena introdução sobre o MapServer e sua história.

3.1 Lição 1 - Introdução ao MapServer

3.1.1 O que é o Mapserver em linhas gerais?

Mapserver é um ambiente de desenvolvimento para aplicações que disponibilizam atravésde web dados espaciais. Esse ambiente é altamente configurável e permite sairmos de simplesmapas estáticos até elaborados sites interativos em tempo real. Porém o Mapserver não é umSIG (Sistema de Informações Geográficos), ou seja, ele não possui ferramentas para a análisede dados espaciais, afinal seu foco (como o próprio nome já diz) é disponibilizar mapas via web.

O funcionamento do Mapserver é relativamente simples:

1. ele é instalado num servidor web (normalmente rodando Apache);

2. no servidor existe uma página web que é configurada para usar o Mapserver;

3. o usuário que acessa o nosso site utiliza a interface criada com alguma linguaguem deprogramação web e que chama as funções do Mapserver para consultar dados espaciais;

4. as consultas irão gerar mapas processados em tempo real e que serão disponibilizados nosite para o usuário em formato de figuras.

Logo o Mapserver nada mais é do que um software de visualização de dados espaciais atra-vés da web.

15

Page 17: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

3.1.2 Qual o poder disso?

Imagine o seguinte fato: um grande projeto institucional precisa disponibilizar mapas aos con-tribuintes. Qual seria a maneira mais rápida de disponibilizar essa informação de forma rápida ebarata? Via internet! É nessa situação que entra em cena o Mapserver.

Uma ressalva é que o Mapserver não é um SIG conforme dito anteriormente. Logo, a base dedados a ser disponibilizada através dele precisa ser manipulada e criada em softwares especiali-zados de SIG (GRASS, QGIS, JUMP, e etc). Particularmente, o QGIS versão TITAN atualmenteoferece recursos avançados para manipulação de dados do PostGIS e informações vetoriais.

Outro fato importante é que o Mapserver é software livre. Logo, além de ser gratuito, seucódigo-fonte é aberto e pode ser customizado. O Mapserver se assemelha a solução paga Ar-cIMS da ESRI®.

3.1.3 História

Em 1994 foi criada o consórcio internacional Open Geospatial (OGC - Open Geospatial Con-sortium), e denominado anteriormente de OpenGIS. Ele possui a missão de desenvolver especi-ficações para interfaces espaciais que serão disponibilizadas livremente para uso geral.

Essa iniciativa nasceu para garantir a interoperabilidade de softwares através da padroniza-ção das funções que tratam (abrem e salvam) dados espaciais e permitir que todos os softwaresde SIG troquem dados entre si. Apesar disso ser o ideal o que pode ser visto é que cada fabri-cante em geral sempre procurou criar seus próprios formatos de dados, minando assim a trocade informações entre os diferentes SIG e aprisionando o usuário dentro de formatos proprietários.

Além de garantir interoperabilidade, outro fator interessante dos padrões OpenGIS é que aotrabalhar-se dentro desses formatos abertos (e sem copyright ou patenteado), o usuário torna-seindependente do software garantindo assim uma vida útil longa para os seus projetos com dadosespaciais.

Por uma coincidência histórica, os padrões abertos criados pelo OGC começaram a ganharmaturidade no mesmo período em que projetos de softwares livres começaram a surgir para osetor de Geoprocessamento. Assim os softwares livres já "nascem"com o OpenGIS já embutido(como o Mapserver).

Atualmente os sistemas proprietários também implementam alguns padrões OGC, porém sãoos softwares livres que aderem mais rapidamente ao OpenGIS (como é o caso do Mapserver,com seu suporte a WFS, WMS e GML). Tornando a escolha pelos softwares livres a escolha

16

Page 18: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

ideal para criar uma arquitetura seguindo os padrões abertos do OGC.

17

Page 19: Mapserver Apostila

Capítulo 4

Instalação do MapServer

Uma pequena explicação de como instalar o MapServer a partir de pacotes binários e docódigo fonte.

4.1 Lição 2 - Instalando o MapServer

4.1.1 Instalando binário do Mapserver com o apt-get

Agora daremos início ao processo de instalação do Mapserver usando pacotes binários (pré-compilados).

Os requisitos mínimos para instalar o Mapserver são:

• servidor web Apache (versão 1 ou 2 com suporte a PHP e CGI);

• PHP (versão 4 ou 5);

• GD 2 (para rodar com a versão 1 é necessário usar versões anteriores do Mapserver 4.4 -normalmente o GD já esta instalado em todos as distribuições GNU/Linux atuais);

• Geos 2;

• Proj 4.

Como o GNU/Linux é um sistema operacional também focado para servidores usar os biná-rios do Apache é simples, já que a maioria das distribuições GNU/Linux possuem esse softwarepré-compilado e de fácil instalação.

Nesse tutorial usamos as distribuições Debian e Ubuntu. No caso do Ubuntu é necessárioativar os repositórios "Universe"e "Multiuniverse"antes de prosseguir com os próximos passos.

18

Page 20: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Para o Mapserver as distribuições Debian (Etch/Testing e Sid/Unstable) e Ubuntu (6.06 e 6.10)já dispõe desse pacote e todas suas dependências, logo tudo que é necessário pode ser facil-mente instalado com os comandos (como root):

> apt-get update

> apt-get install apache2 libapache-mod-php4 php4 php4-gd php-cgi libgeos proj

NOTA: O nome da biblioteca GEOS pode mudar dependendo da versão do Debian ou Ubuntuque você estiver usando. Para descobrir o nome exato dessa biblioteca utilize o comando:

> apt-cache search libgeos

O resultado será (no Ubuntu 6.10):

> sudo apt-cache search libgeos Password:

libgeos-c1 - Geometry engine for Geographic Information Systems - C Librarylibgeos-dev - Geometry engine for GIS - Development fileslibgeos-doc - Documentation for the GEOS GIS geometry engine librarylibgeos2c2a - Geometry engine for Geographic Information Systems - C++ Library

Logo na instalação anterior deveríamos usar no lugar de "libgeos"o nome "libgeos2c2a"(essaé a versão mais recente). Outro exemplo, no Debian Etch a "libgeos"se chama "libgeos-c1".

Nesse procedimento todas as "subdependências"das dependências do Mapserver tambémserão automaticamente instaladas. Outra dependência opcional do Mapserver seriam o PostGIS(que depende do PostgreSQL), se você não pretendo utilizá-lo não se preocupe, caso sim utilize oapt-get para instalá-lo (No Ubuntu 6.06 esse procedimento deverá ser "infelizmente"feito de formamanual, ou seja, compilando o PostGIS manualmente).

No caso do Debian Sarge (Stable) o pacote do Mapserver também esta disponível, mas nessecaso é necessário utilizar um outro repositório (DebianGIS) já este software ainda não fazia parteda árvore oficial do Debian na época do lançamento do Sarge. Para adicioná-lo basta inserir noarquivo source.list (em /etc/apt) do apt-get a seguinte linha:

19

Page 21: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

deb http://pkg-grass.alioth.debian.org/debian-gis stable main non-free contrib

Feito isso basta repetir o procedimento de instalação descrito anteriormente para as outrasversões do Debian.

Finalmente, para instalar o Mapserver o comando é o seguinte (no Ubuntu 6.10):

> sudo apt-get install mapserver-bin cgi-mapserver

Nota: em ambas distribuições (Debian e Ubuntu) os pacotes do Mapserver não selecionamautomaticamente as dependências instaladas anteriormente. Por favor, não tente pular os passosanteriores.

4.1.2 Instalando o MapServer pelo código fonte

No caso da instalação e configuração do Mapserver compilando o código-fonte. Não existemgrandes diferenças. Basta apenas baixar o código fonte das dependências que não possuirembinários, descomprimí-las e compilá-las com os clássicos comandos:

> ./configure

> make

> make install

A vantagem de compilar o Mapserver manualmente é que podemos incluir (ou retirar) supor-tes de dados que podem manipulados pelo mesmo. A versão binária em geral traz suporte aostipos de dados espaciais mais usuais. Logo, se você quer ter mais suportes terá que compilar oMapserver manualmente. Outra vantagem de compilar o Mapserver manualmente é para retiraro suporte a tipo de dados que não serão usados, dessa forma, o binário do Mapserver pode ficarmais enxuto e leve.

Rodando ./configure com o Mapserver você pode ver quais os suportes de arquivos estãodisponíveis no seu GNU/Linux e habilitá-lo (no exemplo o Proj 4) com o seguinte comando:

20

Page 22: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

> ./configure –with-proj

Em alguns casos ainda é necessário além de habilitar o suporte, indicar a localização da de-pendência (no exemplo, use o comando "whereis proj"na linha de comando) caso o ./configureesteja procurando no local errado. No exemplo:

> ./configure –with-proj=/usr/bin/

Após escolher o que deseja habilitar rode normalmente para o Mapserver os comandos:

> make

> make install

4.1.3 Testando o Apache e o MapServer

Após uma instalação padrão (utilizando binários) do Apache normalmente esse serviço já seencontra ativo no seu GNU/Linux. Caso não use o comando:

> /etc/init.d/apache2 start

NOTA: Se o servidor Apache já estiver ativo utilize apenas o comando ” > /etc/init.d/ apache2restart"para reiniciá-lo. Esse opção é importante caso você tenha modificado algum arquivo deconfiguração do Apache, uma vez que as não são carregadas enquanto o serviço (Apache) nãoé reinicializado.

Para testar o Apache dê o seguinte comando em algum navegador web:

http://localhost/

Nota: o exemplo acima assume que você está trabalhando diretamente o servidor. Se vocêesta fazendo a instalação do Apache via rede (SSH) substitua a palavra "localhost"pelo endereçoIP do servidor.

21

Page 23: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Via de regra a instalação do Mapserver (usando binários ou compilando) não instala o seuexecutável no lugar onde o Apache pode utilizá-lo. Logo, precisamos copiá-lo da pasta instaladavia apt-get (ou compilado manualmente para a pasta onde o Apache guarda os CGI).

Para achar onde o mapserver está use o comando:

> locate mapserv

Nota: para quem compilou o Mapserver basta procurar na pasta onde essa tarefa foi reali-zada.

Uma vez achado o arquivo utilize o seguinte comando como root:

> cp /usr/lib/cgi-bin/mapserv

/usr/share/apache2/default-site/cgi-bin/

Se não há nada de errado o CGI do mapserver já está pronto para ser utilizado pelo Apache.O teste mais simples para verificar isso seria utilizar o endereço abaixo em algum navegador web:

http://localhost/cgi-bin/mapserv?

NOTA: o símbolo "?"faz parte do endereço a ser colocado no navegador. Outro aspecto im-portante é que novamente o exemplo acima assume que você está trabalhando diretamente oservidor. Se você esta fazendo a instalação do Apache via rede (SSH) substitua a palavra "loca-lhost"pelo endereço IP do servidor.

Se não existe algum erro na configuração do Apache o resultado será a seguinte mensagem:

22

Page 24: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

No query information to decode. QUERY_STRING is set, but empty.

Parabéns! Temos um servidor rodando Apache e Mapserver pronto!

23

Page 25: Mapserver Apostila

Capítulo 5

MapServer em mapas estáticos

Uma explicação sobre o uso dos utilitários shp2img, legend e scalebar.

5.1 Lição 3 - Mapserver com mapas estáticos

5.1.1 Mapserver com mapas estáticos

Algo que as vezes muitos interessados no Mapserver desconhecem é que além no móduloCGI para ser utilizado com o Apache, existem um série de utilitários capazes de usarem todo opoder no Mapserver na criação de mapas estáticos (imagens).

Dessa forma o usuário tem as funcionalidades do Mapserver a disposição para quase utilizá-locom um SIG na hora de criar um mapa. Outro aspecto importante é que esse utilitários permitemao usuário iniciante em Mapserver entender o seu funcionamento básico, e sem a necessidadede já entender as complicadas formas de chamar as funções do Mapserver em código HTML.

Os principais utilitários são:

• shp2img: usado para criar uma figura de um mapa a partir de um arquivo .MAP;

• legend: para criar uma legenda baseada nas configurações de um arquivo .MAP;

• scalebar: para criar uma barra de escala usando as configurações de um arquivo MAP.

Essas funcionalidades podem utilizadas juntas ou separadamente.

Outro conceito importante e o arquivo .MAP. Ele é uma espécie de configuração para definircomo o Mapserver deve plotar os dados geográficos. Como ele podemos definir limites, coresdos objetos do mapa, rótulos, legenda e etc.

24

Page 26: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

A seguir veremos um exemplo passo-a-passo para utilizar todos esses utilitários de forma in-tegrada.

Em nosso exemplo de criação de mapas com os utilitários do Mapserver, usaremos um ar-quivo shape que se encontra disponível nos recursos deste curso (veja "Arquivos shape usadosnos exemplos do curso", que pode ser obtido em "Atividades»Recursos"ou pela página inicial).Ali você pode encontrar os arquivos "estados.shp", "estados.dbf"e "estados.shx", todos contidosem "estados.zip".

Antes de iniciarmos, precisamos saber as coordenadas aproximadas da extensão geográficaque nosso mapa terá (algo bem lógico não é?). Bom se abrir esse arquivo em algum software deSIG (por exemplo, QuantumGIS) veremos que o Rio Grande do Sul (parte que iremos observarnesta lição) se extende aproximadamente de 27° S até 34° S e de 49° S até 58° S.

Então invocamos o primeiro dos utilitários: o shp2img.

Para o utilizamos crie em um editor de texto digite o texto abaixo e salve em um arquivo emtexto ASCII e lhe o nome "teste.map"(podemos reparar que cada comando têm um comentárioque explica a sintaxe):

MAP # Aqui começa no arquivo .MAPSIZE 800 800 # Nosso mapa terá 800 por 800 pixelsEXTENT -58 -34 -49 -27 # A extensão do estado do RSIMAGECOLOR 250 250 180 # Define a cor de fundo do mapa [o]LAYER # Abrir uma camada de dados

NAME estados # Escolher qual coluna iremos usar para plotar o .SHPTYPE POLYGON # Indicar que a nossa camada é um polígonoSTATUS DEFAULT #DATA estados # Indicar o nosso arquivo de dadosLABELITEM ’NOME_UF’ # Adiciona um rótulo na figura [o]CLASS # Começa uma classe do nosso objeto (estados)

STYLE # Define um estilo para plotar nosso objetoOUTLINECOLOR 50 50 50 # Define a cor de borda do nosso objetoCOLOR 255 200 150 # Define a cor de preenchimento [o]

END # Termina a definicao de estiloLABEL # Cria um rótulo para os municípios [o]

# Define tamanho mínimo para rotulo aparecer [o]MINFEATURESIZE 10

END # Termina a LABEL [o]END # Termina a classe do nosso objeto (estados)

END # Termina a camada/LAYEREND # Termina o arquivo map

25

Page 27: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Nota: as linhas que possuem [o] são opcionais e foram inseridas apenas para melhorar ovisual do mapa.

A seguir grave esse arquivo no mesmo diretório onde estão os arquivos shapefile contidos em"estados.zip". E execute o seguinte comando:

> shp2img -m teste.map -o meu_mapa.png

Nota: Como a opção -o"nós definimos o nome de saída para meu mapa.

Pronto! Basta olhar o arquivo de saída (meu_mapa.png) e temos o nosso primeiro mapausando o Mapserver!

5.1.2 Utilizando o Legend

Para agora utilizarmos o segundo utilitário: o legend. Nele iremos criar uma legenda desta-cando o município de Rio Grande. Para isso o nosso arquivo .MAP precisa sofrer as seguintesalterações (em negrito):

MAP # Aqui começa no arquivo .MAPSIZE 800 800 # Nosso mapa terá 800 por 800 pixelsEXTENT -59 -35 -43 -29 # A extensão mudou para o entorno de Rio GrandeIMAGECOLOR 250 250 250 # Define a cor de fundo do mapaLEGEND # Inicia a legenda

STATUS EMBED # Define que a legenda deve ser inserida no mapaPOSITION LR # Define a posição da legenda (L = low/abaixo e R = right/direita)TRANSPARENT TRUE # Define se a legenda deve ter fundo transparente ou não

END # Termina a legendaLAYER # Abrir uma camada de dados

NAME estados # Escolher qual coluna iremos usar para plotar o .SHPTYPE POLYGON # Indicar que a nossa camada é um polígonoSTATUS DEFAULT #DATA estados # Indicar o nosso arquivo de dados# Adiciona um rótulo na figura. Deve estar previamente definido nos .dbfLABELITEM ’NOME_UF’# Define um item avaliado nas expressões inclusas nas classes

26

Page 28: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

CLASSITEM ’NOME_UF’CLASS # Começa uma classe do nosso objeto (Rio Grande)

NAME ’Rio Grande do Sul’ # Define o nome desse objeto para a legenda# Define a primeira classe de nome e que corresponde# apenas ao município de Rio Grande do SulEXPRESSION ’Rio Grande do Sul’STYLE # Define um estilo para plotar nosso objeto

OUTLINECOLOR 50 50 50 # Define a cor de borda do nosso objetoCOLOR 255 255 150 # Define a cor de preenchimento

ENDLABEL # Cria um rótulo para os municípios

# Define o tamanho mínimo para um município receber# um rótulo com o seu nomeSIZE LARGE

ENDEND # Termina a classe do nosso objeto (Rio Grande)CLASS # Começa uma classe dos outros municípios

NAME ’Outros municípios’ # Define o nome desse objeto para a legendaSTYLE # Define um estilo para plotar nosso objeto

# Define a cor de borda dos outros municípiosOUTLINECOLOR 50 50 50# Define a cor de preenchimento dos municípiosCOLOR 150 150 150

ENDEND # Termina a classe do nosso objeto (demais municípios)

END # Termina layerEND # Termina mapfile

Para verificar o resultado rode o comando:

> shp2img -m teste.map -o meu_mapa.png

Nota: a legenda também pode ser gerada separadamente, para isso o comando é:

> legend teste.map legenda.png

Pronto! Nosso mapa agora tem uma legenda!

27

Page 29: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

5.1.3 Utilizando o Scalebar

Agora em nosso último exemplo usaremos o comando scalebar para gerar uma barra de es-cala em nosso mapa. Para isso o nosso arquivo .MAP precisa sofrer as seguintes alterações (emnegrito):

MAP # Aqui começa no arquivo .MAPSIZE 800 800 # Nosso mapa terá 800 por 800 pixelsEXTENT -59 -35 -43 -29 # A extensão mudou para o entorno de Rio GrandeIMAGECOLOR 250 250 250 # Define a cor de fundo do mapaLEGEND # Inicia a legenda

STATUS EMBED # Define que a legenda deve ser inserida no mapaPOSITION LR # Define a posição da legenda (L = low/abaixo e R = right/direita)TRANSPARENT TRUE # Define se a legenda deve ter fundo transparente ou não

END # Termina a legendaUNITS DD # Define a unidade do mapa (DD = graus decimais)SCALEBAR # Inicia a barra de escala

UNITS KILOMETERS # Define as unidades em quilômetrosINTERVALS 3 # Define o intervalo de separação da escalaTRANSPARENT TRUE # Define que o fundo da escala é transparenteOUTLINECOLOR 0 0 0 # Define a cor de borda da escalaSTATUS EMBED # Define que ela é inserida sobre o mapa

ENDLAYER # Abrir uma camada de dados

NAME estados # Escolher qual coluna iremos usar para plotar o .SHPTYPE POLYGON # Indicar que a nossa camada é um polígonoSTATUS DEFAULT #DATA estados # Indicar o nosso arquivo de dados# Adiciona um rótulo na figura. Deve estar previamente definido nos .dbfLABELITEM ’NOME_UF’# Define um item avaliado nas expressões inclusas nas classesCLASSITEM ’NOME_UF’CLASS # Começa uma classe do nosso objeto (Rio Grande)

NAME ’Rio Grande do Sul’ # Define o nome desse objeto para a legenda# Define a primeira classe de nome e que corresponde# apenas ao município de Rio Grande do SulEXPRESSION ’Rio Grande do Sul’STYLE # Define um estilo para plotar nosso objeto

# Define a cor de borda do nosso objetoOUTLINECOLOR 50 50 50COLOR 255 255 150 # Define a cor de preenchimento

ENDLABEL # Cria um rótulo para os municípios

# Define o tamanho mínimo para um município receber# um rótulo com o seu nomeSIZE LARGE

END

28

Page 30: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

END # Termina a classe do nosso objeto (Rio Grande)CLASS # Começa uma classe dos outros municípios

NAME ’Outros municípios’ # Define o nome desse objeto para a legendaSTYLE # Define um estilo para plotar nosso objeto

# Define a cor de borda dos outros municípiosOUTLINECOLOR 50 50 50# Define a cor de preenchimento dos municípiosCOLOR 150 150 150

ENDEND # Termina a classe do nosso objeto (demais municípios)

END # Termina layerEND # Termina mapfile

Para verificar o resultado rode o comando:

> shp2img -m teste.map -o meu_mapa.png

Nota: a barra de escala também pode ser gerada separadamente, para isso o comando é:

> scalebar teste.map escala.png

Pronto! Nosso mapa agora tem uma legenda e uma barra de escala!

Com isso acabamos de entender todas as principais funcionalidades do Mapserver!

29

Page 31: Mapserver Apostila

Capítulo 6

MapServer: exemplo prático

Utilizando o MapServer em um mapa dinâmico.

6.1 Lição 4 - MapServer: exemplo prático

6.1.1 Exemplo prático

Para estudar o funcionamento do Mapserver em um mapa dinâmico usaremos os dados exem-plos disponíveis em:

http://www.maptools.org/dl/ms4w/mapserv_demo_ms4w.zip

Esse arquivo após descomprimido contém uma pasta chama "mapserv-demo". Nela estacontido um website pronto que podemos utilizar para demonstrar muitas das funcionalidades doMapserver.

No entanto é necessário fazer algumas pois a página inicial do site (index.html) contém várioscaminhos de arquivos que precisam ser alterados.

Logo abra o index.html em algum editor de texto ASCII (por exemplo, Kate, Gedit, VIM, nano,etc... ) e onde aparece:

<form name="demo"method="GET"action="/cgi-bin/mapserv.exe"XonSubmit="submit_form()”>

mudar para:

<form name="demo"method="GET"action="/cgi-bin/mapserv"XonSubmit="submit_form()” >

30

Page 32: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

OBS. Você pode, para não precisar modificar todos os arquivos HTML dos exemplos, alterarsimplesmente o nome do arquivo binário "mapserv"para "mapserv.exe."Para manter compatibili-dade, procure a pasta onde se situa o "mapserv", faça uma cópia desse arquivo no mesmo locale renomeie-o para "mapserv.exe."Assim você terá compatibilidade tanto para o "mapserv"quantopara o "mapserv.exe."

Ainda nesse arquivo mudar onde aparece:

<input type="hidden"name="map"value="/ms4w/apps/mapserv-demo/itasca.map” >

<input type="hidden"name="program"value="/cgi-bin/mapserv.exe” >

<input type="hidden"name="root"value="/mapserv-demo/” >

<input type="hidden"name="map_web_imagepath"value="/ms4w/tmp/ms_tmp/” >

<input type="hidden"name="map_web_imageurl"value="/ms_tmp/” >

para:

<input type="hidden"name="map"value="/var/www/mapserv-demo/itasca.map” >

<input type="hidden"name="program"value="/cgi-bin/mapserv” >

<input type="hidden"name="root"value="/mapserv-demo/” >

<input type="hidden"name="map_web_imagepath"value="/var/www/tmp/” >

<input type="hidden"name="map_web_imageurl"value="/tmp/” >

Na linha com "/var/www..."é a localização do nosso arquivo .MAP e que define como os nos-sos geográficos devem ser mostrados. Em "/cgi-bin/..."é onde a pasta onde o nosso site devebuscar o módulo CGI do Mapserver. Já em "/mapserv-demo/"temos o endereço que usaremos

31

Page 33: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

no Apache para o nosso site. Ainda precisamos criar uma com permissão de escrita chamada"/var/www/tmp/"onde o site usará para gerar os arquivos das consultas e guardá-los temporarea-mente.

Se o Apache em seu servidor guarda as páginas em um pasta diferente de "/var/www/"énecessário nesse caso indicar corretamente o local. No nosso exemplo estamos rodando umservidor usando Ubuntu 6.10.

OBS. Você pode, em outra mão, instalar o exemplo da maneira que o arquivo README des-creve (salvar na pasta "/"). Neste caso, além dos passos que o README sugere, você precisaráfazer algumas adaptações no nome do programa binário "mapserv"(os exemplos supõem "map-serv.exe"). Da mesma forma em que foi dita anteriormente, para manter compatibilidade, procurea pasta onde se situa o "mapserv", faça uma cópia desse arquivo no mesmo local e renomeie-opara "mapserv.exe."

6.1.2 Página de teste

Feito essas alterações no "index.html"copie a pasta "mapserv-demo"inteira (como root) para"/var/www/". É aconselhavél reiniciar o Apache. Após feito isso digite em seu navegador o ende-reço:

http://localhost/mapserv-demo/

Se tudo estiver OK, você verá uma página web com o seguinte texto:

Página de Teste

MapServer Itasca Application

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

This demonstration application will take you through various levels of complexity. Starting witha basic application that allows a user to pan/zoom and change layers we add:

• dynamically configured scalebars

• javascript-based panning

• query results to a frame

32

Page 34: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• and finally, a DHTML rubber-band zoom/query capabilty

The base data is the old-reliable Itasca dataset that we know and love...

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Parabéns! Temos agora um site rodando Mapserver. Agora aproveite e explore as possibili-dades que esse site nos proporciona.

Entender como chamar as funções do Mapserver em HTML é uma tarefa bem mais compli-cada. E como estamos em um curso mais introdutório recomendamos aos usuários ler com aatenção a documentação do Mapserver e investigar os arquivos .HTML que estão na pasta dosite exemplo.

33

Page 35: Mapserver Apostila

Capítulo 7

MapServer com o PostGIS

Explicação de como integrar o MapServer com o PostGIS.

7.1 Lição 5 - MapServer com o PostGIS

7.1.1 Introdução

Com o crescimento da Internet, ampliaram-se muito as maneiras de disponibilizar informaçõesgeográficas através da Web.

Outra funcionalidade interessante para nós é a capacidade do Mapserver de utilizar direta-mente dados do PostgGIS (módulo do PostgreSQL para dados espaciais) em websites (mesmoque cada servidor esteja instalado em um máquina diferente). A grande vantagem em utilizar oPostGIS com o Mapserver é que fazendo isso não só trabalhamos com arquivos estáticos, masusamos um banco de dados que pode ser continuamente atualizado. Além disso é possível em-butir nos códigos interpretados pelo Mapserver a possibilidade de realizar consultas no banco(consultas não necessariamente com dados espaciais), com isso a interatividade e possibilida-des de cruzamentos de dados em um site com Mapserver podem aumentar consideravelmente.

Para usar o Mapserver com o PostGIS, você precisará conhecer como configurar o PostGIS(algo que está além da extensão desse curso).

O Mapserver acessa dados de PostGIS/PostgreSQL como qualquer outro cliente de Post-greSQL (usando a biblioteca libpq). Isto significa que o Mapserver pode ser instalado em qual-quer máquina com acesso de rede (internet ou intranet) e para o servidor de PostGIS, e desdeque o sistema tenha as bibliotecas cliente de PostgreSQL.

OBS. Caso você utilize o PostgreSQL e Mapserver em diferentes servidores, não se esqueçade configurar o PostgreSQL para aceitar conexões que chegam do servidor Mapserver.

34

Page 36: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

7.1.2 MapServer com PostGIS

Os passos para usar o Mapserver com o PostGIS são os seguintes:

1) Compile e instale Mapserver, com qualquer opções que você desejar, sem esquecer a op-ção de configuração -with-postgis"(para habilitar o suporte ao PostGIS);

2) Em seu arquivo .MAP, acrescente uma camada de PostGIS. Por exemplo:

LAYERNAME autoestradas # nome da camada# Conectar ao servidor de banco de dados remotoCONNECTIONTYPE POSTGISCONNECTION "user=usuario dbname=banco host=servidor"# Note que os dados acima já devem estar cadastrados no PostgreSQL# Ler as linhas vetorias da coluna ’the_geom’ da tabela ’pistas’# Note que a coluna ’the_geom’ é onde informações espaciais residem.DATA "the_geom from pistas"STATUS ONTYPE LINE# Apenas desenhar as estradas com 4 pistas ou maisFILTER "type = ’highway’ and numlanes >= 4"CLASS

# Fazer as "superestradas"(com 6 ou mais faixas)# mais claras e 2 pixels mais largasEXPRESSION ([numlanes] >= 6)COLOR 255 22 22SYMBOL "solid"SIZE 2

ENDCLASS

# As demais estradas escuras e apenas com 1 pixel de larguraEXPRESSION ([numlanes] < 6)COLOR 205 92 82

ENDEND

No exemplo acima, as diretivas para utilizar o PostGIS são como segue:

CONNECTIONTYPE

35

Page 37: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Para camadas de PostGIS, este é sempre "POSTGIS".

CONNECTION

A conexão de banco de dados é especificada por um conjunto de variáveis (com os valorespadrões em <>):

user=<usuário> password=<senha_do_usuário> dbname=<nome_do_banco_de_dados> host-name=<servidor> port=<5432>

no exemplo: CONNECTION "user=usuário dbname=banco host=servidor"

Alguns parâmetros podem ser omitidos. Mas no mínimo você deveria colocar o nome dobanco de dados e usuário para se conectar.

DATA

O formato deste parâmetro é «coluna> from <nome_da_tabela>"onde a coluna é a colunaespacial a ser traduzida/visualizada no mapa, e tabela é a fonte dos dados.

FILTER

O FILTER (filtro) deve ser uma string SQL válida, e que correspondendo a uma consulta SQL(com a palavra-chave "WHERE"). Por exemplo, visualizar apenas as estradas com 6 ou maispistas, use um filtro de "num_lanes >= 6."

3) No seu banco de dados espacial, assegure-se que você tem índices espaciais (GiST) cons-truídos para todas as camadas que serão utilizadas pelo Mapserver.

CREATE INDEX [nome_do_índice]

ON [nome_da_tabela]

USING GIST ( [coluna_de_geometria] GIST_GEOMETRY_OPS );

4) Se você for fazer consulta em suas camadas usando Mapserver também precisará de um

36

Page 38: Mapserver Apostila

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

índice "oid".

O Mapserver requer identificadores únicos para cada registro espacial ao fazer as consultas,e o módulo do Mapserver para manipular os dados do PostGIS usa o valor oid PostgreSQL paraprover estes identificadores únicos. Um efeito colateral disto é que para fazer acesso randômicorápido de registros durante as consultas, um índice "oid"é necessário.

Para construir um índice "oid", use o SQL seguinte:

CREATE INDEX [nome_do_índice] ON [nome_da_tabela] ( oid );

37