Artigo: Por Dentro do MapServer

MapServer Artigo

Talvez você já tenha percebido que quando o assunto é publicação de mapas na internet com uso software livre não nos faltam opções robustas, cada qual com suas próprias características de desenvolvimento, arquitetura e customização. Neste contexto o MapServer (MS) surge como um dos programas para webmapping mais populares, por isso abordaremos no presente artigo algumas peculiaridades deste servidor de informação geográfica.

Ao ler os parágrafos a seguir você entenderá, o que é e quais são os objetivos do projeto MS com suas características principais, incluindo os diferentes modos de funcionamento; terá informações sobre o pacote MS4W e os frameworks p.mapper e i3Geo; e ainda encontrará um breve tutorial introdutório e links para aplicações já disponibilizadas na internet.

O FOCO DO MAPSERVER

Tenha em mente que o MS não é, nem tem o objetivo de ser um software para Sistemas de Informação Geográfica (SIG) desktop. Caso você esteja procurando informações sobre programas computacionais deste tipo sugerimos que leia nas edições anteriores desta revista os artigos sobre os projetos gvSIG, Kosmo SIG e Quantum GIS (QGIS).

O MS visa atuar em um nível mais alto, por assim dizer, pois como mencionado na introdução, seu foco é a disponibilização de dados geográficos na internet. É necessário compreender que ele tanto é utilizado como ambiente de desenvolvimento para construção das soluções (mapas interativos) como para publicação destes em um servidor.

UM SOFTWARE COM UMA ÓTIMA REPUTAÇÃO

Há ainda quem acredite que o softwares livres não são dignos de confiança e muito menos de investimento, mas o MS é prova clara que isso não é verdade. Para você entender a razão de afirmarmos isso, considere o seguinte fato.

O MS foi originalmente concebido, em meados da década de 1990, pelo projeto ForNet da Universidade de Minnesota (UMN) em cooperação com o Departamento de Recursos Naturais de Minnesota (MNDNR) e a National Aeronautics and Space Administration (NASA). Isso mesmo, a NASA está envolvida no desenvolvimento do software! Então, você acredita que este órgão de reconhecimento internacional, um verdadeiro gigante na área de ciência e tecnologia investiria tempo e seus extremamente capacitados recursos humanos em um projeto que não fosse realmente importante e confiável?

Some-se ao já mencionado a questão de hoje o MS ser um projeto integrado ao painel da OSGeo, e é mantido por um significativo número de desenvolvedores ao redor do mundo.

Na internet brasileira há dezenas de aplicações MS rodando já por anos e de forma bastante estável. Ao final desta matéria você encontrará o endereço de algumas delas.

Além disso, podemos destacar que a comunidade de usuários registrados no Grupo MapServer Brasil (http://br.groups.yahoo.com/group/mapserver_brasil/), lançado em 2003, já ultrapassa a casa dos 1200 cadastrados, o que se reflete também pela participação ativa de seus membros nas discussões sobre o MS que são quase que diariamente postadas na lista.

Por qual motivo então há tanto interesse no desenvolvimento e utilização do MapServer? O que faz de seu uso algo tão massificado? Observe agora algumas de suas características.

PRINCIPAIS CARACTERÍSTICAS DO MAPSERVER

O MapServer pode ser utilizado para o desenvolvimento de aplicações WebGIS em múltiplas plataformas computacionais, incluindo Windows, Linux e Mac. Só com esta informação já dissipamos qualquer possível temor quanto à compatibilidade com sistema operacional.

Boa parte das propriedades gráficas de uma aplicação com MS é definida nos chamados   mapfiles, que são arquivos de texto puro, de extensão .map ou no formato XML (a partir da versão 5.6) onde são inseridos códigos a ser interpretados pelo programa.

Mas não adianta querer trabalhar com um programa se ele simplesmente não oferece suporte ao tipo de dado que se tem disponível. Com o MS dificilmente você terá problema a este respeito, pois ele é compatível com a grande maioria dos formatos de dados geográficos. O quadro a seguir indica os principais tipos de dados de entrada suportados pelo MS:

Principais tipos de dados de entrada suportados pelo MapServer

No quesito formatos de saída de dados, o MS gerar mapas em um número expressivo de formatos, merecendo destaque na lista como sendo os mais usuais o PNG, JPEG, GIF, SWF, PDF, SVG, DXF e muitos outros da GDAL.

Quanto às suas funcionalidades o MS não deixa a desejar quando comparado a soluções proprietárias, possibilitando indexação espacial para shapefiles, opções variadas para operação de seleção de objetos; suporte a fontes TrueType, construção de elementos cartográficos como legenda, barra de escala (os objetos são desenhados de acordo com a escala), mapa de referência, além de permitir a customização de controles de navegação, uso de rótulos, mapas temáticos a partir de diferentes métodos, reprojeção de dados em tempo de execução, e um fator fundamental: compatibilidade com os padrões do Open Geospatial Consortium (OGC) como o WMS, WFS e WCS.

Para entender em detalhes o que são e para que servem os padrões OGC leia o artigo Sopa de Letras Geográficas na Edição n° 1 da Revista FOSSGIS Brasil, pp.13-18.

Mas como funcionar o MapServer? Temos à nossa disposição três modos (formas) de funcionamento: Common Gateway Interface (CGI), WebServices e MapScript (Fig. 1).

Modos de Funcionamento do MapServer

Quando utilizado em modo CGI, o seu arquivo executável do MS é colocado em diretório apropriado do servidor web. Este arquivo recebe parâmetros que definem como deve ocorrer a inicialização de sua aplicação. Para funcionar de forma adequada, uma aplicação MapServer deste tipo inclui um formulário de inicialização e um arquivo de página template, que pode ser desenvolvido, por exemplo em HTML (XHTML).

Já nos casos onde se utiliza o MS como WebService Geográfico, ele atua na disponibilização de dados em conformidade com os já citados padrões do OGC e que poderão ser acessados através de diferentes softwares de SIG, comerciais ou de código aberto, como os da família ArcGIS, uDig, gvSIG, Quantum GIS, Kosmo ou mesmo por outros mapas interativos.

O terceiro modo de funcionamento, com MapScript, é o que, em geral, permite a criação de aplicações mais robustas, com maior capacitada de customização. Nesta forma de empregar os recursos do MS temos à disposição à possibilidade de integrá-los ao uso de linguagens de programação. Um detalhe especial neste ponto é que embora o MapServer seja escrito de forma nativa na linguagem C, o MapScript está disponível para linguagens populares como o PHP, C#, Perl, Python, Ruby, Java e TCL!

Você sabia que a documentação completa do MapServer está disponível em um portátil arquivo PDF, em inglês?

O PACOTE MS4W E FRAMEWORKS PARA O MAPSERVER

O MS4W é um pacote criado pela equipe MapTools para facilitar o processo de instalação do MS em um servidor Windows. Uma vantagem em seu uso é que além do procedimento ser extremante simples, todas as dependências do MS já estarão instaladas e devidamente configuradas, incluindo o PHP, Apache, e bibliotecas como as Proj4, GDAL e OGR!

Quando se pretende publicar um mapa na internet é importante que seja considerado à amigabilidade da interface para o usuário final. Nesta altura, trabalhando com o MS temos duas opções: Desenvolvê-la do zero, o que pode ser demorado (e desnecessário em muitos casos) ou explorar um dos diversos frameworks disponíveis para trabalhar com o MapServer.

Caso em seu projeto a opção escolhida seja a utilização de programas frameworks, você terá de adequar os códigos e outras configurações do software para atingir uma funcionalidade específica. Entre os aplicativos mais utilizados em conjunto com o MS podemos destacar o p.mapper (www.pmapper.net) e o brasileiro i3Geo, disponível no portal do Software Público Brasileiro – SPB.

O i3Geo pode ser instalado no ambiente Windows através do MS4W, mas neste caso faça o download do arquivo a partir do sítio da comunidade no portal SPB. Veremos agora como instalar o MapServer + i3Geo com utilizando o este pacote. Os passos descritos a seguir levam em consideração que o usuário baixou a versão mais recente do programa.

ATENÇÃO: Não esqueça que é recomendado fazer o download do arquivo que já vem com o MS4W.

  • 1° PASSO: Extraia o conteúdo do arquivo baixado no diretório raiz C:\ utilizando um programa descompactador de sua preferência. Será criado um diretório ms4w naquele local.
  • 2° PASSO: Execute o arquivo apache-install.bat. Caso apareça alguma mensagem perguntando se você concede acesso ao aplicativo, confirme a permissão. (Acredite: O processo de instalação se resume a isto!)
  • 3° PASSO: Para confirmar a instalação do MapServer, digite em seu navegador http://localhost. Deverá aparecer uma mensagem de boas vindas e a indicação da versão do programa que está atualmente instada na máquina (servidor).
  • 4° PASSO: Chegou a hora de confirmar se o i3Geo foi instalado corretamente, para tal, digite o endereço http://localhost/i3Geo em seu navegador. A imagem a seguir (Fig. 2) ilustra a tela inicial padrão que deverá aparecer.

i3Geo - Tela padrão

  • 5° PASSO: Para este exemplo, armazene seus dados geográficos na pasta C:\ms4w\Apache\htdocs\i3geo\aplicmap\dados. Caso queria utilizar o mesmo mapa que utilizaremos neste breve tutorial, contendo a divisão municipal do estado da Paraíba, no Brasil, faça o download do arquivo pelo link abaixo:

Inicialmente vamos configurar nossa área de trabalho ou região geográfica de nossa aplicação. Se você ainda não fez nenhuma alteração neste arquivo, procure na linha 30 (ou próximo dela) a declaração EXTENT.

Note que este parâmetro informa a extensão do retângulo envolvente para a região do território brasileiro em coordenadas geográficas decimais. Iremos trocar este valor para o correspondente a área da Paraíba (este valor pode ser coletado por visualizar o dado geográfico em qualquer software de SIG e não exige precisão de casas decimais). Fique à vontade para utilizar os valores indicados baixo. Perceba que se usa ponto em lugar de vírgula e espaço entre as coordenadas:

EXTENT -38.77 -8.3 -34.79 -6.03

  • 7° PASSO: Procure no mapfile o layer onde no parâmetro “TEMA” está preenchido como “Brasil” – veja o trecho ilustrado abaixo, o uso (…) neste artigo indica código omitido.

LAYER
    DATA “/opt/www/html/i3geo/aplicmap/dados/ “
    METADATA
     “CLASSE”    “SIM”
        “TEMA”    “Brasil”
(…)
“EXTENSAO” “-97.911949 -39.413578 -8.185829 9.511159″

Se você seguiu as orientações dadas nos passos anteriores, substitua o caminho citado no parâmetro DATA por:

DATA “C:\ms4w\Apache\htdocs\i3geo\aplicmap\dados\Municipios”

Neste caso, Municipios é o nome do arquivo shapefile que queremos disponibilizar.

Já no parâmetro EXTENSÃO altere para os mesmos valores mencionados no sexto passo (-38.77 -8.3 -34.79 -6.03). Em TEMA poderá nomear para Paraíba ou outra denominação de sua escolha, pois a palavra utilizada aqui não faz diferença para o MS nem para o framework utilizado.

  • 8° PASSO: Para alterar as propriedades visuais como cor de contorno e do preenchimento dos polígonos, procure, no mesmo layer o parâmetro STYLE. Manipule os códigos RGB de acordo com suas preferências/necessidades, pois os valores postados a seguir são meramente exemplificativos.

STYLE
COLOR 200 254 199
       OUTLINECOLOR 0 153 0
(…)
END

A próxima imagem (Fig. 3) exemplifica o resultado obtido.

Por Dentro do MapServer

Feito! Já começamos a customizar nossa aplicação webmapping com MapServer utilizando i3Geo.

O que acharam desta matéria sobre o MapServer? Esperamos que tenha gostado e que esta tenha aumentado seu conhecimento sobre este programa open source tão poderoso e popular.

Para fazer o download deste artigo baixe a terceira edição da revista FOSSGIS Brasil, no formato PDF. Leia a matéria nas páginas 44-48.

 Assine nosso FeedAssine nosso Feed e receba nossas atualizações por e-mail. Curta nossa página no Facebook [PortalClickGeo] e siga nosso Twitter [@ClickGeo] para continuar atualizado sobre o Mundo das Geotecnologias.

Consultor em Geotecnologias, graduado em Geoprocessamento. Instrutor de diversos cursos, presenciais e online, sobre Geotecnologias com Softwares Livres com ênfase em QGIS, gvSIG, PostgreSQL/PostGIS, MapServer e i3Geo.

Cursos de Linux - 100% Online

5 Responses to Artigo: Por Dentro do MapServer

  1. Adalberto Dornelles disse:

    Olá,

    Talvez seja muito básico, mas estou com uma dificuldade.

    Gostaria de fazer um mapa do brasil colorindo os estados de acordo com uma variavel (que vai de 0% a 100%): verde para 0% e ir graduando a te vermelho para 100%
    É muito complicado?

    Abraço
    adalberto

    • Adalberto, você tem que ver esses detalhes na documentação do MapServer e pensar em qual framework utilizará (i3Geo, p.mapper, etc ou outro desenvolvido por você mesmo). Mas com certeza é possível sim.
      Abraço!

  2. Rafael disse:

    Blz Anderson. Valeu!

  3. Rafael disse:

    Olá, o link para a página “Conheça Melhor o MapServer” está com problemas.

    • Rafael, obrigado por informar o problema.
      O link agora deve estar ok. Teste, por favor. Espero sempre contar com seus comentários. O que achou da matéria?
      Um Abraço!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Curta: Portal ClickGeo