Vivian Facundes Dantas
DISPONIBILIZAÇÃO DE SERVIÇOS DE MAPAS: COMPARATIVO
ENTRE SOFTWARE LIVRE E SOFTWARE COMERCIAL
Palmas
2005
Vivian Facundes Dantas
DISPONIBILIZAÇÃO DE SERVIÇOS DE MAPAS: COMPARATIVO
ENTRE SOFTWARE LIVRE E SOFTWARE COMERCIAL
“Estágio apresentado como requisito parcial da
disciplina Prática de Sistemas de Informação I
do curso de Sistemas de Informação, orientado
pelo Prof. M. Sc. Gonzalo Álvaro Vázquez
Fernández”.
Palmas
2005
VIVIAN FACUNDES DANTAS
DISPONIBILIZAÇÃO DE SERVIÇOS DE MAPAS: Comparativo entre
software livre e software comercial
“Estágio apresentado como requisito
parcial da disciplina Prática de Sistemas
de Informação I do curso de Sistemas de
Informação, orientado pelo Prof. M. Sc.
Gonzalo Álvaro Vázquez Fernández”.
Aprovada em julho de 2005
BANCA EXAMINADORA
_____________________________________________________
Prof. M.Sc. Gonzalo Álvaro Vázquez Fernández
Centro Universitário Luterano de Palmas
_____________________________________________________
Prof. M.Sc. Eduardo Leal
Centro Universitário Luterano de Palmas
_____________________________________________________
Prof. Fernando Luiz de Oliveira
Centro Universitário Luterano de Palmas
Palmas
2005
AGRADECIMENTOS
Em primeiro lugar, agradeço a Deus por ter me abençoado com bolsa de estudo desde o
primeiro semestre de faculdade até hoje.
A minha família que sempre me dar forças e ânimo para seguir em frente.
As minhas amigas Letícia, Tânia e Elma pelo companheirismo.
Ao meu Orientador Gonzalo, por ter me cedido a oportunidade de estagiar no laboratório
de Processamento de Informações Georeferenciadas (LaPIG) e pela idéia do trabalho
“Reconstrução do Mapa do Estado do Tocantins de 1980 utilizando uma ferramenta SIG”
que só me trouxe benefícios.
Aos acadêmicos Bruno Tácito, Benjamim e Anderson Sá que me ajudaram nos momentos
em que mais precisei. Valeu equipe do LaPIG!
A Professora Thereza Patrícia pela compreensão.
SUMÁRIO
1.
INTRODUÇÃO........................................................................................................... 10
2
REVISÃO DE LITERATURA ................................................................................... 12
2.1
Disponibilização de Mapas na Internet ............................................................... 12
2.1.2
2.2
3
4
Padrão OGC......................................................................................................... 14
2.2.1
Especificações para o ambiente Web........................................................... 15
2.2.2
Especificação para o transporte de dados espaciais..................................... 17
2.2.3
Especificações para o Banco de Dados ....................................................... 18
2.3
MapServer ........................................................................................................... 18
2.4
ArcIMS ................................................................................................................ 21
MATERIAL E MÉTODOS......................................................................................... 25
3.1
Local e Período.................................................................................................... 25
3.2
Material................................................................................................................ 25
3.3
Hardware ............................................................................................................. 25
3.4
Software............................................................................................................... 26
3.5
Metodologia......................................................................................................... 26
3.5.1
A Estrutura necessária para o Servidor MapServer 4.2.0............................ 26
3.5.2
A Estrutura necessária para o Servidor ArcIMS 4 ...................................... 29
RESULTADOS E DISCUSSÃO ................................................................................ 31
4.1
5
Servidor de Mapas ....................................................................................... 13
Comparação do MapServer com o ArcIMS ........................................................ 32
4.1.1
Custo Financeiro.......................................................................................... 33
4.1.2
Criação da interface do site ......................................................................... 33
4.1.3
Especificação da OGC................................................................................. 33
4.1.4
Formato dos dados enviados para o browser .............................................. 33
4.1.5
Interação do usuário com a aplicação.......................................................... 34
4.1.6
Comunicação cliente/servidor ..................................................................... 34
4.1.7
Tratamento de dados vetoriais..................................................................... 35
4.1.8
Segurança do serviço ................................................................................... 35
4.1.9
Instalação de programas para visualizar os mapas via browser .................. 35
4.1.10
Mão de obra especializada........................................................................... 35
4.1.11
Suporte ao usuário no Brasil........................................................................ 36
CONCLUSÃO............................................................................................................. 37
REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................ 38
ANEXOS .......................................................................................................................... 41
vi
LISTA DE FIGURAS
Figura 1 - Estrutura de um servidor de mapas.................................................................... 14
Figura 2 - Execução do serviço WFS. (JUNIORa et al., 2005).......................................... 16
Figura 3–Declaração de um ponto e sua coordenada em GML.(COX et al., 2003) .......... 17
Figura 4 – Estrutura básica de um arquivo map para representar um polígono. (CABRAL
& ALVES, 2004)......................................................................................................... 20
Figura 5 – Arquitetura ArcIMS. (ESRI, 2002)................................................................... 23
Figura 6 - Estrutura de uma arquivo de requisição axl....................................................... 23
Figura 7 - Estrutura de uma arquivo de resposta axl .......................................................... 24
Figura 8 – A estrutura para descrever o shapefile lakespy2. .............................................. 28
Figura 9 - Representação do shapefile lakespy2 em ArcXML........................................... 30
Figura 10 - Interface da aplicação demo do MapServer em HTML. ................................. 31
Figura 11 – Interface ArcIMS do projeto Itasca utilizando Java. ...................................... 32
vii
LISTA DE ABREVIAÇÕES
API - Application Programming Interface
CGI - Common Gateway Interface
GML - Geography Markup Language
HTML – Hyper Text Markup Language
HTTP – Hyper Text Transfer Protocol
OGC – Open Geospatial Consortium
SFS - Simple Features Specification
SGBD – Sistema Gerenciador de Banco de Dados
SIG – Sistemas de Informação Geográfica
SSL - Secure Sockets Layer
WFS – Web Feature Service
WMS – Wep Map Service
XML – Extensible Markup Language
viii
RESUMO
Os servidores de mapas permitem disponibilizar dados geográficos na web sem
exigir do usuário final qualquer ferramenta para poder visualizar o mapa, exceto o
navegador web e alguns plugins específicos. Os servidores baseados em software de
código aberto geralmente não têm custo de licenciamento de software e podem ser
amplamente usados. Os servidores proprietários têm um espectro maior de funcionalidade,
mas o custo costuma ser elevado e nem sempre sua aplicabilidade é imediata. Dependendo
do tipo da aplicação elaborada, o usuário poderá ter pouca ou muita interatividade com o
mapa: pouca quando a aplicação é de forma estática, ou seja, será permitido ao usuário
algumas funções limitadas como selecionar layer, visualização (zoom + ou -) ou consulta
estática; e muita quando a aplicação permite ao usuário algumas ações como inserir seu
próprio arquivo para interagir com os dados da aplicação, editar os mapas disponibilizados,
salvar o mini-projeto elaborado pelo usuário via web no computador local. Esta segunda
interatividade citada, dá ao usuário a impressão de está utilizando um Sistema de
Informação Geográfica, embora um servidor de mapas não tenha ainda todas as
funcionalidades de um SIG.
O objetivo deste trabalho é analisar a estrutura do serviço oferecida pelo servidor
MapServer 4.2.0, freeware e código aberto, em relação à estrutura oferecida pelo servidor
comercial ArcIMS 4. Para atingir este objetivo foram montados dois servidores de mapas:
um servidor em MapServer e outro em ArcIMS, rodando a aplicação “demo workshop”
disponível na página do MapServer (MAPSERVER, 2005).
Palavras chave: Servidor de mapas, MapServer, ArcIMS.
ix
ABSTRACT
The development of map servers allows to deliver maps in several formats through
the web without demanding any special license from the final user but a common web
browser and some regular plug-ins. Depending on the type of the application, the user will
have different levels of interactivity with the map. Little interactivity is obtained when the
application is in a static form, that is, the user will be allowed limited functions, such as:
select layer, visualize, zoom in or out, static queries and map printing. More interactivity
is obtained when the application allows the users some actions such as to insert their own
map files on the web map, to edit the released maps, to save their own mini-project through
the internet in their local personal computer. The latter activity mentioned gives the user an
impression of using a GIS, even though a map server does not have all GIS functionality
yet.
The objective of this work is to analyze the structure of the service offered by the
free server MapServer 4.2.0 in relation with the structure offered by the commercial server
ArcIMS 4.
To reach this objective two servers of maps were installed: a server in
MapServer and another one in ArcIMS, executing a demo application available in the
MapServer site (MAPSERVER, 2005).
Key words: Server of maps, MapServer, ArcIMS.
1.
INTRODUÇÃO
O Sistemas de Informação Geográfica (SIG) é a ferramenta principal quando se
trata de digitalização e manipulação de mapas. O SIG é uma aplicação local que permite ao
usuário armazenar dados geográficos, criar projetos contendo vários layers com diversos
modelos de dados e auxiliar principalmente na tomada de decisão. Por ser uma aplicação
local, os dados geográficos só podem ser manipulados e visualizados na máquina onde há
um SIG instalado. A utilização de aplicações comerciais limita mais ainda a
disponibilização de dados, pois nem todos os usuários têm condições de pagar o valor
cobrado para obter uma aplicação comercial como o ArcGIS da ESRI (Environmental
Systems Research Institute). Como o formato de dados shapefile da ESRI é um dos
formatos mais utilizados pelas grandes empresas, os SIGs intitulados de livre como, por
exemplo, o SPRING do INPE (Instituto Nacional de Pesquisas Espaciais), permite
converter alguns tipos de dados (cadastral) para este formato, pois a interoperabilidade
entre aplicações é uma das principais finalidades dos softwares livres.
Os servidores de mapas permitem disponibilizar dados geográficos na web sem
exigir do usuário final qualquer ferramenta para poder visualizar o mapa, exceto o
navegador web e alguns plugins específicos. Os servidores baseados em software de
código aberto geralmente não têm custo de licenciamento de software e podem ser
amplamente usados. Os servidores proprietários têm um espectro maior de funcionalidade,
mas o custo costuma ser elevado e nem sempre sua aplicabilidade é imediata. Dependendo
do tipo da aplicação elaborada, o usuário poderá ter pouca ou muita interatividade com o
mapa: pouca quando a aplicação é de forma estática, ou seja, será permitido ao usuário
algumas funções limitadas como selecionar layer, visualização (zoom + ou -) ou consulta
estática; e muita quando a aplicação permite ao usuário algumas ações como inserir seu
11
próprio arquivo para interagir com os dados da aplicação, editar os mapas disponibilizados,
salvar o mini-projeto elaborado pelo usuário via web no computador local. Esta segunda
interatividade citada, dá ao usuário a impressão de está utilizando um SIG, embora um
servidor de mapas não tenha ainda todas as funcionalidades de um SIG. As alterações
feitas pelo usuário não afetam a base de dados do servidor (MIRANDA & SOUZA, 2003).
Já há um número expressivo de empresas privadas e órgãos públicos que estão
disponibilizando projetos através de servidores de mapas livres (MAPSERVER, 2005).
Segundo MIRANDA & SOUZA (2003), a Embrapa Informática Agropecuária adota tanto
quanto possível de produtos livres.
O objetivo deste trabalho é analisar a estrutura do serviço oferecida pelo servidor
MapServer 4.2.0, freeware e código aberto, em relação à estrutura oferecida pelo servidor
comercial ArcIMS 4. Para atingir este objetivo foram montados dois servidores de mapas:
um servidor em MapServer e outro em ArcIMS, rodando a aplicação “demo workshop”
disponível na página do MapServer (MAPSERVER, 2005).
2
2.1
REVISÃO DE LITERATURA
Disponibilização de Mapas na Internet
O surgimento de Sistemas de Informações Geográficas (SIG) permitiu a aquisição e
manipulação de mapas digitais. Mapas analógicos foram sendo convertidos para digitais e
grandes projetos utilizando mapas digitais foram surgindo. Com o tempo, houve a
necessidade de compartilhar estes projetos na internet para que diversos usuários pudessem
ter acesso e que não fosse restrito apenas a usuários de uma determinada rede local
(intranet), o que é o máximo permitido por um SIG.
A disponibilização de mapas na internet iniciou-se através de páginas estáticas
desenvolvidas em HTML e apresentavam mapas no formato de imagem como gif ou jpeg.
A linguagem HTML apresenta opções limitadas que permitem apenas disponibilizar mapa
no formato matricial, selecionar áreas do mapa e anexar informações a essas áreas através
de hyperlinks (MIRANDA, 2003). Contudo, além de mapas matriciais, um SIG também
trabalha com mapas vetoriais. Um dado vetorial “armazena um conjunto de coordenadas
que definem determinado elemento gráfico, em um arranjo de pares xy. Já a estrutura raster
(matricial), utiliza uma matriz NxM, composta de células (pixels), que assumem
determinados valores de acordo com o que é representado, formando uma imagem da área
estudada” (MORETTI, 1999). O gargalo do momento é a transmissão de dados vetoriais na
internet, pois segundo JUNIORb et al. (2005), os browsers atuais não estão preparados
para receber e apresentar dados neste formato. Duas alternativas citadas por JUNIORb et
al. (2005):
1. Criar um plug-in para funcionar no computador local do usuário conectado ao
navegador web. O plug-in reconhece os dados vetoriais à medida em que vão
13
2. chegando e os exibe na tela. Já existem browsers desenvolvidos por fabricantes de
software para SIG que permitem a transmissão de dados vetoriais. Com isso não a
necessidade de utilizar plug-in;
3. Criar um applet. O applet é um programa feito em Java para ser executado por um
browser. Ele é transmitido no momento do acesso e executado na máquina do
usuário. Após o encerramento, a aplicação desaparece da máquina do usuário.
2.1.2 Servidor de Mapas
O servidor de mapas é uma aplicação do tipo cliente\servidor composta
basicamente por um Servidor HTTP, uma interface que apresentará as imagens
requisitadas pelo usuário e uma base de dados. A figura 1 apresenta a estrutura de um
servidor de mapas. Montar um servidor de mapas requer a escolha de cada uma destas
aplicações e já existem aplicações livres com a mesma qualidade de aplicações
proprietárias para cada um delas que permitem montar um servidor de mapas sem custo de
licenciamento de software. As aplicações livres que atualmente estão em ênfase pelo seu
desempenho são:
•
Apache: é um Servidor HTTP que tem a função de enviar e receber informações
através do protocolo HTTP. O Servidor recebe a solicitação do cliente, processa e
envia uma resposta;
•
MapServer: é uma aplicação que interpreta dados geográficos e permite
disponibilizá-los na web;
•
PostgreSQL/PostGis: Um SGBD (PostgreSQL) que gerencia e uma base de dados
(Postgis) que armazena dados geográficos.
14
Servidor
Cliente
Requisição
Interface
Servidor
HTTP
Resposta
Base
Dados
de
Servidor
de Mapas
Figura 1 - Estrutura de um servidor de mapas.
Na estrutura da figura 1, o cliente recebe as solicitações do usuário através da interface e
faz a requisição ao servidor. O servidor recebe a requisição do cliente, e o servidor HTTP é
responsável por processar e encaminhar ao servidor de mapas. O servidor de mapas
interpreta apenas os dados geográficos da base de dados referente ao que foi solicitado e
gera dados como resposta. O servidor HTTP acessa os dados gerados e retorna-os como
resposta ao cliente que em seguida é visualizado na interface.
Segundo MIRANDA (2003) um servidor de mapas pode utilizar 3 tipos de
arquiteturas para disponibilizar mapas pela web: applet (aplicação do tipo cliente), servlet
(aplicação do tipo servidor) ou Common Gateway Interface - CGI (aplicação do tipo
servidor). O applet e o servlet são aplicativos escritos em java e executados em ambientes
diferentes. O applet é executado do “lado” do cliente e a manipulação do mapa é feita no
próprio computador do usuário onde está instalado o aplicativo, pois o servidor apenas
carrega o aplicativo. O servlet é executado no servidor. O CGI é um aplicativo que pode
ser escrito utilizando uma linguagem compilada ou interpretada. É executado do “lado” do
servidor e permite desenvolver páginas com conteúdos dinâmicos.
2.2
Padrão OGC
O Open Geospatial Consortium (OGC) foi criada em 1994 por empresas de
soluções proprietárias com o intuito de desenvolver especificações para permitir a
interoperabilidade entre sistemas que trabalham com dados espaciais e localização. Na
visão da OGC (2005), os produtos e serviços que se adaptarem as suas especificações,
15
permitirão aos usuários trocarem e aplicarem livremente informações espaciais, as
aplicações e os serviços através das redes, plataformas diferentes e produtos.
Os softwares proprietários voltados para a área de geotecnologias são repassados ao
mercado por um elevado custo, o que restringe o acesso da grande maioria dos interessados
na área. Segundo UCHOA & FERREIRA (2004), os softwares proprietários dominaram o
mercado durante anos, mas com o surgimento da criação do consórcio internacional Open
Geospatial(OGC) e a revolução do software livre (Free Software Foundation) este quadro
mudou, e vários softwares livres foram surgindo. Já existem muitos sistemas livres que
seguem as especificações da OGC e alguns sistemas proprietários em processo de
adaptação a essas especificações (UCHOA & FERREIRA, 2004).
2.2.1 Especificações para o ambiente Web
As especificações da OGC mais utilizadas para a web em softwares livres segundo
UCHOA & FERREIRA (2004), são: WFS (Web Feature Service) e WMS (Web Map
Service).
A WFS é uma especificação relacionada às operações de inserção, exclusão,
atualização e consulta de objetos geográficos. A figura 2 exemplifica o serviço WFS entre
o cliente e o servidor. As principais características da WFS são:
•
As operações entre o cliente e o servidor são baseadas no formato GML. A GML
(Geography Markup Language) é uma especificação da OGC baseada em
esquemas XML para transportar e armazenar informações geográficas (JUNIORa
et al., 2005);
•
Utiliza
as
operações:
getCapabilities,
describeFeatureType,
getFeature,
transaction e lockFeature;
•
O serviço WFS pode ser implementado de forma básica (permite só consulta) ou
completa (inserção, exclusão, atualização e consulta) (JUNIORa et al., 2005).
16
Cliente
Servidor
requisição<GetCapabilities>
documento<WFS_Capabilities>
requisição<describeFeatureType >
documento<schema>
Requisição<Transaction>
documento<WFS_TransactionResponse>
Figura 2 - Execução do serviço WFS. (JUNIORa et al., 2005).
A WMS especifica a forma como o cliente fará a requisição de mapas ao Servidor.
Segundo MIRANDA (2003), a arquitetura da WMS é composta por um programa cliente
WMS (processa as requisições do usuário e mostra os dados espaciais), um programa
servidor de mapas WMS e a base de dados. Essa especificação “define 4 protocolos que
permitem a leitura de múltiplas camadas de informações (layers) georreferenciadas,
contendo vetores e/ou imagens” (UCHOA & FERREIRA, 2004). Estes 4 protocolos são:
GetCapabilities, GetMap, GetFeatureInfo e DescribeLayer. A GetCapabilities, GetMap,
GetFeatureInfosão as três interfaces da WMS utilizadas no programa cliente para efetuar
as requisições ao Servidor. Segundo UCHOA & FERREIRA (2004), o cliente só consulta
os dados, ou seja, a imagem que ele recebe corresponde apenas a uma visualização do
mapa.
A interação entre um programa cliente WMS e um servidor de mapas WMS ocorre,
segundo MIRANDA & SOUZA (2003), da seguinte forma: o cliente requisita informação
sobre a funcionalidade do servidor de mapas (GetCapabilities). O servidor produz como
resposta, um documento XML contendo todas as operações permitidas ao cliente e as
informações sobre os mapas disponíveis.
O cliente depois de ficar a par de suas
permissões, requisita um mapa imagem através do GetMap. O servidor processa a
requisição, normalmente acessando dados armazenados na base de dados, e retorna ao
17
cliente um mapa imagem codificado no formato de uma figura MIME, como GIF ou JPEG.
O cliente, ao ter acesso à imagem do mapa, pode escolher um ponto no mapa e requisitar
dados de atributos através da função GetFeatureInfo. O servidor responde a essa requisição
no formato de um arquivo GML (Geographic Markup Language). O cliente interpreta o
arquivo GML e mostra os atributos requisitados no navegador.
2.2.2 Especificação para o transporte de dados espaciais
Os browsers existentes hoje em dia no mercado que permitem acesso e visualização
de páginas web não suportam dados espaciais do tipo vetorial. Algumas soluções não
proprietárias já estão sendo utilizadas para sanar parte deste problema. São elas: GML
(Geography Markup Language) especificação da OGC e o SVG (Scalable Vector
Graphics ) especificação da W3C.
GML foi especificada pela OGC para transportar e armazenar informações de
dados espaciais e não-espaciais, através da utilização de esquemas XML para codificar os
dados geográficos (OGC, 2005). Segundo MIRANDA (2002), o GML codifica qualquer
tipo de dado geográfico. Na codificação de um dado espacial é descrito a sua forma (ponto,
linha ou polígono) e a localização (coordenadas) para manter a representação espacial
(HESS & IOCHPE, 2003). A finalidade de utilizar esta especificação é representar a
topologia de um dado vetorial. Cada ponto, linha ou polígono que compõe um dado
vetorial é representado num documento XML Schema conforme definição da GML.
A figura 3 apresenta a declaração de um ponto e sua coordenada entre tags GML.
<gml:location>
<gml:Point gml:id="point96" srsName="epsg:4326">
<gml:coordinates>
31:56:00S 115:50:00E
</gml:coordinates>
</gml:Point>
</gml:location>
Figura 3–Declaração de um ponto e sua coordenada em GML.(COX et al., 2003)
18
O SVG é uma linguagem baseada em XML para representar imagens vetoriais.
Segundo JUNIOR, SOUZA e BORGES (2005), já é possível fazer combinações entre o
GML e o SVG para disponibilizar dados geográficos na web.
2.2.3 Especificações para o Banco de Dados
A especificação da OGC para banco de dados mais utilizada em softwares livres
segundo UCHOA & FERREIRA (2004) é o SFS (Simple Features Specification). Esta
especificação define a forma como os dados serão organizados em um banco de dados
geográfico. A SFS trabalha com dados vetoriais e segue o formato do SQL para as funções
de armazenamento, leitura, análise (topológica, espaciais, entre outras) e atualização de
dados geográficos através de uma API (UCHOA & FERREIRA, 2004).
“API é uma interface com funcionalidades específicas para o desenvolvimento de
determinado tipo de aplicações, normalmente permitindo, através de determinadas
rotinas, acesso a níveis mais baixos do sistema.” (UCHOA & FERREIRA, 2004)
Um banco de dados que utiliza a especificação SFS é o PostGis. O PostGis é um
módulo do PostGreSQL um Sistema Gerenciador de Banco de Dados (SGBD) de código
aberto. “O PostgreSQL foi o primeiro SGBD de código aberto a trabalhar com um módulo
específico para o tratamento dos dados geográficos vetoriais” (UCHOA & FERREIRA,
2004) e “possui um pacote, o PostScript, que permite a integração com o software
MapServer” (SOUZA & ALVES, 2005).
Existem também SGBDs proprietários que utilizam módulos para dar suporte ao
tratamento de dados geográficos como, o SQL Server da Microsoft em conjunto com o
ArcSDE da ESRI.
2.3
MapServer
É um servidor de mapas OpenSource, desenvolvido pela University of Minnesota
(UMN) juntamente com a Nasa e o Minnesota Departament of Natural Resources
(MNDNR) com base nas especificações WMS. No Brasil, o Laboratório de Computação
Aplicada (LCA) localizado no Centro de Ciências Tecnológicas da Terra e do Mar da
19
Universidade do Vale do Itajaí (UNIVALI), mantém uma parceria com o projeto
MapServer, UMN e MNDNR, e abriga na versão português o site do MapServer e também
presta suporte aos usuários do MapServer no Brasil (CABRAL & ALVES, 2004). Há
alguns conceitos relevantes de autores da área em relação ao MapServer :
“O MapServer é uma aplicação do tipo servidor de mapas para disponibilizar mapas e
imagens de satélite na web, executada a partir de um Servidor HTTP.” (MIRANDA &
SOUZA, 2003)
“É um conjunto de recursos e ferramentas OpenSource para a criação de aplicações
espaciais (geográficas) em ambiente Internet/Intranet.” (KANEGAE, 2003)
“O MapServer é uma tecnologia que implementa o conceito de WEBMAPPING.”
(CABRAL & ALVES, 2004)
Webmapping, de acordo com CABRAL & ALVES (2004), é simplesmente
disponibilizar um mapa na internet a partir de uma requisição feita pelo usuário através de
um navegador web. O MapServer, por ser uma aplicação CGI, pode ser configurado com
linguagens de programação compiladas, como C ou C++, ou interpretadas, como PERL ou
PHP.
Estas podem ser utilizadas para gerar páginas dinâmicas, pois o uso do CGI
possibilita a comunicação destes programas externos com o servidor HTTP (ARROYO &
SANTOS, 2003).
Algumas das principais características do MapServer (MAPSERVER, 2005):
•
Suporta mapas em formato vetorial (Shapefiles, ArcSDE) ou matricial de 8 bits
(TIFF/GeoTIFF, GIF, PNG, ERDAS, JPEG e EPPL7);
•
Templates podem ser utilizados na apresentação das informações;
•
Suporta a fonte TrueType (imprime os caracteres especiais da língua portuguesa);
•
Gera automaticamente legenda, mapas de referência e barra de escala;
•
Projeção dinâmica;
20
•
Suporta as especificações OGC: WMS (cliente/servidor), non-transactional WFS
(cliente/servidor), WCS (servidor), WMC, SLD, GML e Filter Encoding.
O MapServer não interpreta diretamente dados geográficos no formato shapefile.
Isto só é possível através da configuração do mapfile. O mapfile é um arquivo de extensão
.map que pode ser criado utilizando um editor de textos. A figura 4 apresenta a estrutura
básica para representar um arquivo shapefile. É neste arquivo que são definidos todas as
características contidas num shapefile para que o MapServer possa interpretar o conteúdo
do arquivo shapefile. As características principais que devem ser definidas são (CABRAL
& ALVES, 2004):
•
Os parâmetros da imagem: é definido o tamanho e a cor do plano de fundo
aonde será apresentado a imagem e os limites sudoeste e nordeste da imagem
shapefile;
•
A seleção das feições: é definido para cada imagem o tipo de geometria (ponto,
linha ou polígono), o nome da layer, o nome do arquivo shapefile, a cor e o
nome da legenda.
MAP
EXTENT –54 –29.5 –48 –25.5
UNITS DD
INTERLACE ON
SIZE 600 400
IMAGECOLOR 224 224 224
SHAPEPATH ‘SHAPES’
LAYER
DATA ‘POLITICO’
NAME ‘POLITICO’
STATUS DEFAULT
TYPE POLYGON
CLASS
COLOR 32 210 32
OUTLINECOLOR 0 0 0
END
END
END
Figura 4 – Estrutura básica de um arquivo map para representar um polígono. (CABRAL
& ALVES, 2004)
21
Além do mapfile, existem 7 arquivos executáveis que pertencem a versão
compilada do MapServer 4.2.0 e cada um possui uma função própria (KANEGAE, 2003):
•
mapserv : é a aplicação principal do MapServer. É a primeira a receber as
informações sobre a localização dos arquivos da aplicação e o que deve ser
executado;
•
legend : gera as legendas do mapa de acordo com o que foi definido no CLASS do
arquivo map;
•
scalebar : gera as barras de escala de acordo com o que foi descrito no arquivo
mapfile;
2.4
•
shp2img : cria a imagem que vai representar o shapefile;
•
shptree : gera arquivos de índice espaciais quadtree de um shapefile;
•
sortshp : ordena um shapefile baseando-se no campo da tabela dbf;
•
tile4ms : gera tile-indexes.
ArcIMS
É um servidor de mapas comercial desenvolvido pela ESRI, uma grande empresa
que desenvolve software na área de geotecnologias. O ArcIMS é o módulo do ArcGIS que
auxilia na criação de sites geográficos para disponibilizar dados shapefiles ou imagens na
web através de um Servidor HTTP. O ArcIMS possui 3 aplicações independentes: ArcIMS
Author, ArcIMS Administrator e ArcIMS Designer. Cada uma dessas aplicações possui
funcionalidades distintas que auxiliam no processo de desenvolvimento do site.
O ArcIMS Author é semelhante ao ArcMap. Este módulo auxilia a importação de
dados no formato shapefile ou imagem (ADRG, ASRP, BIL, BIP, BMP, BSQ, CADRG,
CIB, ERDAS, GeoTIFF, GIF, GRID, IMAGINE, IMPELL, JFIF, JPG, MrSID, NITTF,
PNG, SUN, TIFF ou USRP). Cada dado importado é adicionado a uma nova layer
(camada). Todo o processo de edição dos dados geográficos e a conexão com o banco de
22
dados ArcSDE são realizados no ArcIMS Author. O resultado do projeto gerado no
ArcIMS Author e um arquivo com extensão axl.
O ArcIMS Design auxilia na criação do site. Nele são definidos o título da web
page, o serviço que irá utilizar, o tipo do template do site (HTML ou Java), as cores do
template, a escolha das ferramentas (zoom, localizar, consultar e etc) que permitirão ao
usuário final manipular os dados apresentados, o nome do diretório aonde serão
armazenados os arquivos.
O ArcIMS Administrator auxilia na criação e gerenciamento do serviço ArcIMS. É
através deste aplicativo que são efetuados os processos de inicialização, remoção e parada
do serviço. Além do serviço, as pastas e o servidor também são gerenciados. O serviço
criado pode ser de três tipos: ImageServer, FeatureServer ou MetadataServer. O serviço
ImageServer gera imagens para representar um shapefile e estas imagens geradas que são
acessadas e disponibilizadas ao navegador web. O FeatureServer ao contrário do
ImageServer, disponibiliza o próprio shapefile e o MetadataServer apresenta apenas as
informações que compõe um shapefile.
A arquitetura ArcIMS é composta por duas aplicações: cliente e servidor,
representada na figura 5. A aplicação Cliente pode ser desenvolvida utilizando um dos três
tipos de viewers (ESRI, 2002): ArcIMS HTML Viewer, ArcIMS Java Custom Viewer e
ArcIMS Java Standard Viewer. A diferença entre essas viewers está na sua funcionalidade,
pois o ArcIMS Java apresenta funções mais relevantes que o ArcIMS HTML. A aplicação
servidor é composta por:
•
Servidor web: sua função é receber a requisição do cliente e passá-la para o servlet
conector. O servlet em seguida repassa a requisição para o ArcIMS Conector;
•
Gerenciador: Gerencia as aplicações Autor, Design e Administrador;
•
ArcIMS Conector: recebe a requisição do servlet e converte essa requisição para a
linguagem ArcXML. Após a conversão, o pedido é entregue ao servidor de
aplicação;
•
Servidor de aplicação: recebe o pedido do conector, verifica qual o servidor
espacial está disponível e envia o pedido;
•
Servidor espacial: recebe o pedido do servidor de aplicação. Os seis servidores
virtuais (image, feature, query, geocode, extract e metadata) definem quais os tipos
23
de pedidos vão ser processados pelo servidor espacial (ESRI, 2002). A resposta é
uma string XML.
Figura 5 – Arquitetura ArcIMS. (ESRI, 2002)
O ArcXML é uma extensão SIG do XML (ESRI Portugal, 2005). “É o protocolo
para comunicação com o servidor espacial ArcIMS” (ESRI, 2002). Toda requisição feita
ao servidor espacial é através de um arquivo com extensão axl que contém o tipo de
chamada, e a resposta também é através de um arquivo axl. As figuras 6 e 7 apresentam a
estrutura básica dos arquivos axl de requisição e resposta de uma imagem.
<?xml version="1.0" encoding="UTF-8" ?>
<ARCXML version="1.1">
<REQUEST>
<GET_IMAGE>
<PROPERTIES>
<ENVELOPE/>
</PROPERTIES>
</GET_IMAGE>
</REQUEST>
</ARCXML>
Figura 6 - Estrutura de uma arquivo de requisição axl
24
<?xml version="1.0"?>
<ARCXML version="1.0">
<RESPONSE>
<IMAGE>
<ENVELOPE/>
<OUTPUT/>
</IMAGE>
</RESPONSE>
</ARCXML>
Figura 7 - Estrutura de uma arquivo de resposta axl
3 MATERIAL E MÉTODOS
Para a realização deste trabalho foram utilizados recursos de hardware e software
(livre e comercial) que juntamente com orientações e contribuições de integrantes do
fórum do grupo MAPSERVER e documentos bibliográficos disponível na internet,
possibilitou o desenvolvimento e a finalização do trabalho.
3.1
Local e Período
Este trabalho foi desenvolvido no período de Março a Julho de 2005, no
Laboratório de Processamento de Informações Georeferenciadas (LaPIG) localizado no
Complexo Laboratorial do Centro Universitário Luterano de Palmas.
3.2
Material
Os recursos de hardware e software comercial utilizados durante o desenvolvimento
do trabalho foram disponibilizados pelo Laboratório de Processamento de Informações
Georeferenciadas (LaPIG) do curso de Engenharia Agrícola do CEULP/ULBRA. Os
softwares livres também utilizados foram adquiridos através de sites de adeptos de
softwares livres.
3.3
Hardware
Pentium 4, 1.7 GHz e 228 Mb de RAM;
Pentium
4,
1.7
GHz
e
256
Mb
de
RAM
(Computador
pessoal);
26
3.4
3.5
Software
•
Apache 2.0.53;
•
ArcIMS 4;
•
IIS 5;
•
Internet Explorer 6.0;
•
J2SE(TM) Development Kit 5.0 Update 3;
•
Java(TM) 2 runtime environment, Standard Edition, v. 1.3.1;
•
MapServer 4.2.0;
•
Microsoft Windows 2000 Professional;
•
Microsoft Java Virtual Machine;
•
Microsoft Word 2002 Professional.
•
Documentos Bibliográficos
•
Artigos.
Metodologia
Com base na leitura dos artigos citados na referência bibliográfica foi possível
compreender o funcionamento dos servidores de mapas MapServer e ArcIMS. Foi
montado na plataforma Windows 2000 os dois servidores. Os dados da aplicação demo
Itasca disponibilizada do site MapServer (MAPSERVER, 2005) foram utilizados nos dois
servidores.
3.5.1 A Estrutura necessária para o Servidor MapServer 4.2.0
O funcionamento do servidor de mapas se deu através da utilização dos seguintes
aplicativos:
27
•
Apache Server HTTP 2.0.53;
•
MapServer 4.2.0;
•
Aplicação demo Itasca.
Os sete arquivos executáveis que fazem parte do pacote MapServer 4.2.0 e tem
como função interpretar os arquivos map foram adicionados ao diretório cgi-bin do
servidor Apache. No diretório de documentos (htdocs) do servidor HTTP foi criada uma
pasta denominada workshop e nela foi inserida a aplicação demo Itasca. O diretório
workshop está composto por 6 pastas: data (contém somente os arquivos com extensão
*.shp, *.dbf, *.shx, *.wld e *.pl), graphics (contém somente as imagens com extensão *.gif
e uma imagem com extensão png que fazem parte do frame onde são apresentados os
mapas), javascript, perl, symbols e templates (contém as páginas html que são utilizadas
para apresentar as consultas estáticas). Os arquivos index.html, map e outros com extensão
*.html (os templates principais do site) estão localizados diretamente no workshop e não
em uma subpasta.
O processo inicia-se através da página principal (index.html) que é acessada via
browser pelo usuário. Na implementação do index.html é definindo um form utilizando o
método do tipo get (method=“GET”) e chamando o arquivo mapserv.exe (action=cgibin/mapserv.exe) para executar os valores pré-definidos no form. Os valores são:
•
o endereço do arquivo mapserv.exe;
•
as layers lakespy2 (Lagos e rios) e dlgstln2 (Córregos) que devem ser lidas;
•
o endereço do arquivo map;
•
o endereço da pasta aonde será armazenado as imagens geradas de um arquivo
shapefile (foi criado uma pasta chamada tmp dentro do diretório workshop para
armazenar essas imagens);
•
o endereço da url de acesso a pasta tmp;
•
o template que será exibido as imagens.
28
O mapser.exe acessa o arquivo map e executa as layers (lakespy2 e dlgstln2). A
figura 8 apresenta a forma como foi descrito sobre o arquivo shapefile lakespy2 no arquivo
map.
LAYER
NAME lakespy2
TYPE POLYGON
STATUS OFF
DATA lakespy2
CLASS
NAME 'Lakes & Rivers'
TEMPLATE "templates/lakespy2.html"
STYLE
COLOR 49 117 185
END
END
HEADER "templates/lakespy2_header.html"
FOOTER "templates/lakespy2_footer.html"
TOLERANCE 3
DUMP TRUE # allow GML export
METADATA
WMS_TITLE "Lakes and Rivers"
WMS_ABSTRACT
"DLG
lake
and
river
polygons
for
Itasca
County.
See
http://deli.dnr.state.mn.us/metadata/full/dlglkpy2.html for more information."
WMS_SRS "EPSG:26915"
END
END # lakes
Figura 8 – A estrutura para descrever o shapefile lakespy2.
Para cada shapefile da aplicação é criado uma layer e nela definida as informações
referente ao shapefile. Na figura 8, criou-se uma layer com o mesmo nome (NAME
lakespy2)
POLYGON)
e o nome
do arquivo shapefile lakespy2, definiu o tipo de dado do shapefile (TYPE
do arquivo shapefile (DATA
(NAME
'Lakes
&
lakespy2).
Rivers'),
"templates/lakespy2.html")
Em
CLASS
é definido o nome que a legenda receberá
o template que vai apresentar a consulta (TEMPLATE
e a cor da legenda (COLOR
layer criada é descrita em METADATA.
49 117 185).
As informações sobre a
29
O mapserv.exe ao ler as informações sobre a layer lakespy2, cria um arquivo no
formato imagem do tipo PNG e armazena na pasta tmp. O serviço Apache acessa este
arquivo que foi armazenado e envia ao cliente. Cada vez que o cliente requisita a
visualização de uma determinada layer, este processo se repete conforme o que foi
requisitado.
3.5.2 A Estrutura necessária para o Servidor ArcIMS 4
O funcionamento do servidor de mapas comercial se deu através da utilização dos
seguintes aplicativos:
•
IIS 5;
•
ArcIMS 4;
•
Arquivos shapefiles da aplicação demo Itasca;
•
J2SE(TM) Development Kit 5.0 Update 3;
•
Java(TM) 2 runtime environment, Standard Edition, v. 1.3.1;
•
Microsoft Java Virtual Machine.
O ArcIMS possui 3 diretórios virtuais: AXL, Website e Output. O primeiro passo foi
importar todos os arquivos que fará parte do projeto. Este processo é elaborado no ArcIMS
Author. Os 14 shapefiles da aplicação Itasca foram todos importados para o ArcIMS
Author e cada shapefile importado é adicionado a uma nova layer que recebe o mesmo
nome do arquivo shapefile. Algumas edições que permitem melhorar a aparência das
imagens foram feitas. Após este processo é salvo o projeto e como resultado é gerado
automaticamente um arquivo axl no diretório AXL. Na figura 9 tem-se a representação
apenas da layer lakespy2.
A figura 9 mostra a representação da layer “lakespy2”. Primeiro mostra o tipo de
arquivo (type="featureclass")
-
no ArcGIS todo arquivo shapefile é do tipo featureclass, o
nome da layer (name="lakespy2"), a visibilidade da layer (visible="true") indica se a layer
está selecionada ou não (visible="false") – como recebe true o usuário ao acessar aplicação
30
já visualizará a imagem sem precisar selecionar, o id indica a posição da layer (id="4") em
relação as outras layers (ordem de apresentação).
Com o projeto pronto, a próxima etapa foi criação do serviço através do ArcIMS
Administrador. Nesta etapa foi criado um serviço com o nome Itasca, definiu-se o serviço
Itasca como featureServer1, e adicionou o arquivo itasca.axl (projeto elaborado no
ArcIMS Autor) ao serviço. Como a finalidade é disponibilizar dados vetoriais ao cliente e
não apenas no formato imagem, foi criado um serviço do tipo featureServer (é um servidor
virtual que executa shapefiles).
<LAYER type="featureclass" name="lakespy2" visible="true"
id="4">
<DATASET name="lakespy2" type="polygon" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL boundarytransparency="1,0"
filltransparency="1,0" fillcolor="27,127,227" boundarycaptype="round" />
</SIMPLERENDERER>
</LAYER>
Figura 9 - Representação do shapefile lakespy2 em ArcXML.
A última etapa é a criação do site utilizando o ArcIMS Design. Nesta etapa, foi
definido o nome workshop para o diretório que armazenará as páginas do site, o titulo do
site (Itasca), a escolha do serviço (Itasca), e como o serviço Itasca é do tipo FeatureServer
só é possível criar os templates do site utilizando Java Custom ou Java Standard (Java
Custom foi escolhido, pois dá a opção de escolher as cores do site, as ferramentas de
manipulação e outros, ao contrário do Java Standard (template não permite alterações), e
finalizando
o
diretório
workshop
é
salvo
no
diretório
Website.
4
RESULTADOS E DISCUSSÃO
Com a migração dos dados da aplicação demo Itasca e algumas configurações
feitas no código desta aplicação para adaptá-la a estrutura montada do servidor MapServer,
foi possível visualizar via localhost a interface da aplicação como mostra a figura 10.
Figura 10 - Interface da aplicação demo do MapServer em HTML.
32
Os arquivos shapefiles da aplicação demo Itasca migrados para o servidor ArcIMS
puderam ser visualizados via browser. Como são transmitidos no formato vetorial, é
necessário a instalação do Java plug-in 1.3.1 e o ArcExplorer (software do ArcIMS) para
visualizar os dados da aplicação no browser. A figura 11 apresenta a interface gerada em
ArcIMS.
Figura 11 – Interface ArcIMS do projeto Itasca utilizando Java.
4.1
Comparação do MapServer com o ArcIMS
O objetivo principal de um servidor de mapas é permitir que dados geográficos
sejam disponibilizados na internet. Partindo deste ponto, a forma e os módulos que serão
utilizados neste processo vai depender do tipo de aplicação que se deseja implementar.
Dependendo do tipo da aplicação, parte-se para um outro ponto que é definir qual o
servidor de mapas que melhor atende aquela determinada necessidade, seja o servidor de
33
mapas do tipo comercial ou livre. Alguns pontos foram analisados em relação ao
MapServer 4.2.0 e o ArcIMS 4.
4.1.1 Custo Financeiro
O MapServer permite montar um servidor utilizando módulos 100% livre. Alguns
destes módulos são: Apache (Servidor HTTP), PostGree/PostGis e MySQL (Banco de
Dados), PHP e Perl (Linguagem de Programação para a web).
O ArcIMS também permite utilizar alguns módulos livres como o Apache no lugar
do IIS e o Tomcat executando o papel do servlet, mas a priori já há um gasto como o
software e a licença.
4.1.2 Criação da interface do site
O MapServer não possui uma interface gráfica para desenvolvimento do front
end.O desenvolvedor, via alguma linguagem de programação para web suportada pelo
MapServer, cria manualmente o site.
O ArcIMS possui uma interface gráfica (ArcIMS Design) que auxilia passo-a-passo
a criação do site. Várias ferramentas de manipulação de mapas (zooms, consultas, e etc)
são apresentadas ao desenvolvedor e fica a cargo dele escolher o que fará parte ou não da
interface do site.
4.1.3 Especificação da OGC
O MapServer foi desenvolvido atendendo as especificações WMS tanto para o
cliente, quanto para o servidor, além de atender outras especificações: non-transactional
WFS (cliente/servidor), WCS (servidor), WMC, SLD, GML e Filter Encoding.
O ArcIMS não foi desenvolvido para atender as especificações para a web da OGC,
à exceção do ArcIMS Servlet Conector que atende a especificação WMS 1.0.0.
4.1.4 Formato dos dados enviados para o browser
O MapServer implementa a especificação WMS e esta especificação se refere à
produção de um mapa que irá representar o mapa original. Quando o usuário solicita a
visualização de uma determinada layer, o cliente faz a requisição passando as informações
34
e o servidor processa-as e gera um arquivo do tipo imagem que é apenas a representação de
um dado vetorial. Esta imagem gerada que é disponibilizada ao usuário.
O ArcIMS permite disponibilizar tanto um dado vetorial quanto um dado do tipo
imagem. O tipo de dado disponibilizado vai depender do tipo de serviço (ImageServer,
FeatureServer ou MetadaServer). Se for do tipo ImageServer, o servidor virtual
ImageServer que está integrado ao servidor espacial ArcIMS vai tratar da mesma forma
que o MapServer trata os dados (converte pra imagem), mas se for do tipo FeatureServer é
disponibilizado o próprio dado vetorial.
4.1.5 Interação do usuário com a aplicação
O MapServer permite ao usuário executar apenas atividades simples como
visualização, consulta e impressão. Esta pouca interação é conseqüência da forma como
são disponibilizados os dados (ver item 3.5.1).
No ArcIMS, dependendo das ferramentas que forem disponibilizadas no template
do site e o serviço do tipo FeatureServer, além das funções disponíveis no MapServer, o
usuário poderá executar as seguintes atividades avançadas:
1. salvo no ArcIMS Author;
2. Salvar o projeto na máquina local com extensão axl e reutilizar o projeto salvo no
ArcIMS Author;
3. Salvar dados no formato armazenado na base;
4. Salvar a layer selecionada na máquina local no formato imagem (jpeg);
5. Editar os mapas.
4.1.6 Comunicação cliente/servidor
Numa aplicação CGI como o MapServer, o cliente faz a requisição ao servidor e o
servidor repassa essa requisição ao programa principal mapserv.exe localizado no diretório
cgi-bin. O mapserv.exe executa a requisição e gera algo de acordo com o que foi solicitado.
Por fim, o servidor retorna como resposta o resultado gerado pela aplicação CGI do
MapServer.
35
O cliente/servidor ArcIMS se comunicam através do protocolo ArcXML. A requisição
do cliente é feita através de uma mensagem axl request e a resposta do servidor se dá
através de uma mensagem axl response.
4.1.7 Tratamento de dados vetoriais
O MapServer permite tratar dados vetoriais de duas formas:
1. Converte o dado vetorial em imagem e envia ao cliente sem manter a topologia,
ou;
2. Armazena as informações de cada ponto e linha de um dado vetorial em um
documento XML seguindo as especificações GML.
O ArcIMS envia ao cliente o próprio dado vetorial sem convertê-lo para o formato
imagem.
4.1.8 Segurança do serviço
Recursos de segurança podem ser usados em outros níveis do serviço no Apache.
Também podem ser usados firewalls e outros recursos similares, de acordo com os padrões
usados para servidores regulares, como por exemplo o SSL.
O ArcIMS providencia suporte ao protocolo HTTP sobre o SSL (HTTPS) para
garantir a segurança do site (ESRI Portugal, 2005). Durante a instalação do ArcIMS as
opções HTTP e HTTPS são apresentadas.
4.1.9 Instalação de programas para visualizar os mapas via browser
O MapServer não exige do usuário a instalação de plug-in ou qualquer outro tipo de
programa.
O ArcIMS exige do usuário a instalação do ArcExplorer, Microsoft Java Virtual
Machine e o plug-in Java 1.3.1.
4.1.10 Mão de obra especializada
No MapServer, todo o desenvolvimento do site é feito via programação.
Dependendo, é claro,
do tamanho do projeto, uma equipe com no mínimo um
programador, um especialista em modelagem de sistemas e outro em SIG será necessário.
36
No ArcIMS, não há a necessidade de contratar programadores ou saber
programação, pois possui subprogramas que auxiliam cada etapa do desenvolvimento do
projeto, site e criação do serviço. Um especialista em SIG e que tenha noções de como
funciona um servidor já é o essencial.
4.1.11 Suporte ao usuário no Brasil
Suporte ao MapServer:
1. Existe um fórum brasileiro na internet de usuários do MapServer para tirar dúvidas;
2. A UNIVALI presta suporte aos usuários do MapServer no Brasil;
3. Encontro Nacional de Usuários MapServer, um evento que se tornou anual e reúne
participantes interessados em construir a comunidade MapServer Brasil.
Não existe para o ArcIMS um fórum brasileiro na internet para tirar dúvidas ou eventos.
5
CONCLUSÃO
A comparabilidade entre os servidores MapServer e ArcIMS trouxe como
contribuição um referencial para auxiliar na tomada de decisão sobre qual dos dois
servidores de mapas adotar para disseminar dados geográficos na internet.
O fato de um software ser gratuito não é o principal ponto para adotá-lo, pois o que
não é gasto no software muitas vezes dependendo do tipo de aplicação que se deseja
implementar, há gastos com mão-de-obra especializada, uma estrutura operacional maior
para dar suporte, entre outros. Tendo de antemão as características do site que se deseja
implementar, o próximo passo mais importante é verificar qual servidor de mapas que
possui os requisitos e este trabalho vem proporcionar maior autonomia na escolha do
servidor de mapas através da comparabilidade que foi realizada entre o MapServer e o
ArcIMS.
Como trabalho futuro, pretende-se montar uma base de dados com os projetos de
mapas desenvolvidos no Laboratório de Processamento de Informações Georeferenciadas
(LaPIG) do CEULP/ULBRA e criar um site para disponibilizar os mapas através do
MapServer e ArcIMS.
REFERÊNCIAS BIBLIOGRÁFICAS
ARROYO, Alexandre; SANTOS, Fabio. Programação para a Web utilizando PHP.
Centro
de
Computação
-
Unicamp,
2003.
Disponível
em
<
http://www.ccuec.unicamp.br/treinamentos/index_html?focomenu=Treinamentos&foco2=
Treinamentos/66108>. Acesso em 15/5/2005.
CABRAL, Rodrigo B.; ALVES, Adriana G. MapServer Brasil. 5° Fórum Internacional
de
Software
Livre,
2004.
Disponível
<http://g10.cttmar.univali.br/apresent/mapserver_brasil_FISL2004.pdf>.
em
Acesso
em
18/4/2005.
ESRI. Using ArcIMS. Redland-USA, ESRI, 2000-2002.
ESRI
Portugal.
Disponível
em
<http://www.esri-
portugal.pt/produtos/produtos_solucoes_internet_arcmis.html>. Acesso em 30/6/2005.
HESS, Guillermo N.; IOCHPE, Cirano. Utilizando a GML na identificação de
candidatos
a
padrão
de
análise
para
BDG.
em<http://www.geoinfo.info/geoinfo2003/papers/geoinfo2003-26.pdf
>.
Disponível
Acesso
em
5/7/2005.
JUNIOR, Clodoveu A. Davis; BORGES, Karla A. V.; SOUZA, Ligiane Alves de;
CASANOVA, Marco Antonio; JUNIOR, Paulo de Oliveira L. Cap.11 – O Open
39
Geospatial
Consortium.
Disponível
em
<http://www.dpi.inpe.br/livros/bdados/cap11.pdf>. Acesso em 6/6/2005.
JUNIOR, Clodoveu A. Davis; SOUZA, Ligiane Alves de; BORGES, Karla A. V. Cap.10 Disseminação
de
dados
geográficos
na
Internet.
Disponível
em
<http://www.dpi.inpe.br/livros/bdados/cap10.pdf>. Acesso em 6/6/2005.
KANEGAE,
Eduardo
P.
Guia
de
Instalação
MapServer.
Disponível
em
Acesso
em
<http://www.consultoria.eti.br/download/mapserver_guia-instalacao.pdf>.
7/3/2005.
MAPSERVER Brasil. Disponível em <http://mapserver.cttmar.univali.br/>. Acesso em
30/5/2005.
MIRANDA, José Iguelmar. Publicando mapas na web: servlets, applets ou cgi?.
Embrapa
Informática
Agropecuária,
2003.
Disponível
em
<http://www.cnptia.embrapa.br/modules/tinycontent3/content/2003/doc28.pdf>.
Acesso
em 7/3/2005.
MIRANDA, José Iguelmar. Diretivas para disponibilizar mapas na internet. Embrapa
Informática
Agropecuária,
2002.
Disponível
em
www.cnptia.embrapa.br/modules/tinycontent3/content/2002/doc14.pdf>.
<http://
Acesso
em
10/5/2005.
MIRANDA, José Iguelmar; SOUZA, Kleber Xavier Sampaio de. Como publicar mapas
na
web.
Embrapa
Informática
Agropecuária,
2003.
Disponível
em
<http://iris.sid.inpe.br:1908/col/ltid.inpe.br/sbsr/2002/11.08.11.52/doc/03_050.pdf>.
Acesso em 31/5/2005.
MORETTI, Edmar. Especificações para Mapas Impressos e Produtos Digitais.
Disponível
em
<http://www2.ibama.gov.br/unidades/guiadechefe/guia/anexos/anexo11.pdf>. Acesso em
6/6/2005.
OGC.
Vision
&
Mission.
Disponível
http://www.opengeospatial.org/about/?page=vision>. Acesso em 14/6/2005.
em
<
40
SOUZA, Murilo Allan Sodré de; ALVES, Adriana Gomes. WEBGEO – Software para
Elaboração de Projetos de Pesquisa com Georreferenciamento. Disponível em
<http://g10.cttmar.univali.br/tcc/WEBGEOUnisulFinal.pdf >. Acesso em 2/6/2005.
UCHOA, Helton N.; FERREIRA, Paulo R Geoprocessamento com Software Livre versão
1.
Disponível
em
<http://www.geolivre.org.br/downloads/geoprocessamento_software_livre_UchoaRoberto-v1.0.pdf>. Acesso em 7/3/2005.
COX, Simon; DAISEY, Paul; LAKE, Ron; PORTELE, Clemens; WHITESIDE, Arliss.
OpenGIS® Geography Markup Language (GML) Implementation Specification.
Disponível
em
<
Acesso em 4/7/2005.
https://portal.opengeospatial.org/files/index.php?artifact_id=7174>.
41
ANEXOS
42
Anexo 1 – Código map do arquivo itasca.map
#
# Start of map file
#
MAP
NAME ITASCA
STATUS ON
SIZE 600 600
EXTENT 388107.634400379 5203120.88405952 500896.339019834 5310243.30613897
UNITS METERS
SHAPEPATH "data"
IMAGECOLOR 255 255 255
TEMPLATEPATTERN "itasca"
IMAGETYPE PNG
#
# Projection definition, consult the PROJ.4 documentation for parameter discussion
#
# PROJECTION
#
"proj=utm"
#
"ellps=GRS80"
#
"zone=15"
#
"north"
#
"no_defs"
#
#
OR:
#
#
"init=epsg:26915"
# END
#
# Start of symbol definitions (we're only using a few)
#
SYMBOL
NAME 'circle'
TYPE ELLIPSE
POINTS 1 1 END
FILLED TRUE
END
SYMBOL
NAME 'star'
TYPE VECTOR
FILLED TRUE
POINTS
0 .375
.35 .375
.5 0
.65 .375
1 .375
.75 .625
.875 1
.5 .75
.125 1
.25 .625
END
END
#
# Start of web interface definition (including WMS enabling metadata)
#
WEB
HEADER templates/header.html
TEMPLATE "set in index.html"
FOOTER templates/footer.html
MINSCALE 1000
MAXSCALE 1550000
IMAGEPATH "set in index.html"
IMAGEURL "set in index.html"
43
METADATA
WMS_TITLE "UMN MapServer Itasca Demo"
WMS_ABSTRACT "This is a UMN MapServer application for Itasca County located in
north central Minnesota."
WMS_ACCESSCONSTRAINTS none
# change this value to match your setup
WMS_ONLINERESOURCE
"http://localhost.localdomain/mapserver_demos/itasca/index.html"
WMS_SRS "EPSG:26915"
END
END
#
# Start of reference map
#
REFERENCE
IMAGE graphics/reference.png
EXTENT 393234.393701263 5205405.16440722 495769.579718949 5307959.02579127
SIZE 120 120
STATUS ON
MINBOXSIZE 5
MAXBOXSIZE 100
COLOR 255 0 0
OUTLINECOLOR 0 0 0
MARKERSIZE 8
MARKER 'star'
END
#
# Start of legend
#
LEGEND
KEYSIZE 18 12
LABEL
TYPE BITMAP
SIZE MEDIUM
COLOR 0 0 89
END
STATUS ON
END
#
# Start of scalebar
#
SCALEBAR
IMAGECOLOR 0 0 0
LABEL
COLOR 255 255 255
SIZE TINY
END
STYLE 1
SIZE 100 2
COLOR 255 255 255
UNITS MILES
INTERVALS 1
TRANSPARENT TRUE
STATUS ON
END
#
# Start of layer definitions
#
LAYER
NAME drgs
TYPE RASTER
STATUS OFF
# OFFSITE 31
OFFSITE 252 252 252
44
CLASS
NAME 'Digital Raster Graphic'
KEYIMAGE graphics/drgs_keyimage.png
END
METADATA
WMS_TITLE "USGS 1:250,000 Digital Raster Graphic"
WMS_ABSTRACT
"Hibbing
and
Bemidji
quadrangles.
http://deli.dnr.state.mn.us/metadata/full/drgncim1.html for more information."
WMS_SRS "EPSG:26915"
END
TILEINDEX drgidx
END
See
LAYER
NAME ctybdpy2
TYPE POLYGON
STATUS DEFAULT
DATA ctybdpy2
# no need for a background IF the USGS quads are being drawn
REQUIRES "![drgs]"
CLASSITEM 'cty_name'
CLASS
EXPRESSION 'Itasca'
STYLE
OUTLINECOLOR 128 128 128
COLOR 225 225 185
END
END
CLASS # every other county in the state
EXPRESSION /./
STYLE
OUTLINECOLOR 128 128 128
COLOR 255 255 255
END
END
METADATA
WMS_TITLE "County Boundary"
WMS_ABSTRACT
"Itasca
County
boundary
shapefile.
http://deli.dnr.state.mn.us/metadata/full/ctybdne2.html for more information."
WMS_SRS "EPSG:26915"
END
END
LAYER
NAME mcd90py2
GROUP cities
TYPE POLYGON
DATA mcd90py2
STATUS OFF
CLASSITEM city_name
CLASS
NAME "Cities & Towns"
EXPRESSION /./
STYLE
COLOR 255 225 90
END
TEMPLATE "templates/mcd90py2.html"
END
HEADER "templates/mcd90py2_header.html"
FOOTER "templates/mcd90py2_footer.html"
DUMP TRUE # allow GML export
METADATA
WMS_TITLE "Minor Civil Divisions"
See
45
WMS_ABSTRACT "Minor civil divisions for Itasca County (boundaries only)."
WMS_SRS "EPSG:26915"
END
END
LAYER
NAME twprgpy3
TYPE POLYGON
DATA twprgpy3
STATUS OFF
CLASS
NAME 'Townships'
STYLE
SYMBOL 'circle'
SIZE 2
OUTLINECOLOR 181 181 145
END
END
METADATA
WMS_TITLE "Township Boundaries"
WMS_ABSTRACT "Pulic Land Survey (PLS) township boundaries for Itasca County.
See http://deli.dnr.state.mn.us/metadata/full/twprgne2.html for more information."
WMS_SRS "EPSG:26915"
END
END
LAYER
NAME lakespy2
TYPE POLYGON
STATUS OFF
DATA lakespy2
CLASS
NAME 'Lakes & Rivers'
TEMPLATE "templates/lakespy2.html"
STYLE
COLOR 49 117 185
END
END
HEADER "templates/lakespy2_header.html"
FOOTER "templates/lakespy2_footer.html"
TOLERANCE 3
DUMP TRUE # allow GML export
METADATA
WMS_TITLE "Lakes and Rivers"
WMS_ABSTRACT
"DLG
lake
and
river
polygons
for
Itasca
County.
http://deli.dnr.state.mn.us/metadata/full/dlglkpy2.html for more information."
WMS_SRS "EPSG:26915"
END
END # lakes
LAYER
NAME dlgstln2
TYPE LINE
STATUS OFF
DATA dlgstln2
CLASS
NAME "Streams"
TEMPLATE "templates/dlgstln2.html"
STYLE
COLOR 49 117 185
END
END
See
46
HEADER "templates/dlgstln2_header.html"
FOOTER "templates/dlgstln2_footer.html"
TOLERANCE 5
DUMP TRUE # allow GML export
METADATA
WMS_TITLE "Streams"
WMS_ABSTRACT
"DLG
streams
for
Itasca
County.
http://deli.dnr.state.mn.us/metadata/full/dlgstln2.html for more information."
WMS_SRS "EPSG:26915"
END
END # streams
See
LAYER
NAME ctyrdln3
GROUP roads
MAXSCALE 300000
STATUS OFF
DATA ctyrdln3
TYPE LINE
CLASS
STYLE
COLOR 0 0 0
END
END
METADATA
WMS_TITLE "County Roads"
WMS_ABSTRACT "County roads (lines only). Derived from MNDOT roads layer, see
http://deli.dnr.state.mn.us/metadata/full/dotrdln2.html for more information."
WMS_SRS "EPSG:26915"
END
END # county roads
LAYER
NAME ctyrdln3_anno
GROUP roads
MAXSCALE 300000
STATUS OFF
DATA ctyrdln3
TYPE ANNOTATION
LABELITEM "road_name"
CLASS
STYLE
COLOR 255 255 255
SYMBOL 'symbols/ctyhwy.png'
END
LABEL
MINFEATURESIZE 40
MINDISTANCE 150
POSITION CC
SIZE TINY
COLOR 0 0 0
END
END
METADATA
WMS_TITLE "County Roads"
WMS_ABSTRACT "County roads (shields only). Derived from MNDOT roads layer, see
http://deli.dnr.state.mn.us/metadata/full/dotrdln2.html for more information."
WMS_SRS "EPSG:26915"
END
END # county road annotation
LAYER
NAME majrdln3
GROUP roads
MAXSCALE 600000
47
STATUS OFF
DATA majrdln3
TYPE LINE
CLASS
NAME "Roads"
STYLE
COLOR 0 0 0
END
END
METADATA
WMS_TITLE "Highways"
WMS_ABSTRACT "Highways- state, US and interstate (lines only). Derived from
MNDOT roads layer, see http://deli.dnr.state.mn.us/metadata/full/dotrdln2.html for more
information."
WMS_SRS "EPSG:26915"
END
END # highways
LAYER
NAME majrdln3_anno
GROUP roads
MAXSCALE 600000
STATUS OFF
DATA majrdln3
TYPE ANNOTATION
LABELITEM "road_num"
CLASSITEM "road_class"
CLASS
EXPRESSION "3"
STYLE
COLOR 0 0 0 # dummy color
SYMBOL 'symbols/sthwy.png'
END
LABEL
MINFEATURESIZE 50
MINDISTANCE 150
POSITION CC
SIZE TINY
COLOR 0 0 0
END
END
CLASS
EXPRESSION "2"
STYLE
COLOR 0 0 0 # dummy color
SYMBOL 'symbols/ushwy.png'
END
LABEL
MINFEATURESIZE 50
MINDISTANCE 150
POSITION CC
SIZE TINY
COLOR 0 0 0
END
END
CLASS
EXPRESSION "1"
STYLE
COLOR 0 0 0 # dummy color
SYMBOL 'symbols/interstate.png'
END
LABEL
MINFEATURESIZE 50
MINDISTANCE 150
POSITION CC
SIZE TINY
COLOR 255 255 255
END
END
METADATA
48
WMS_TITLE "Highways"
WMS_ABSTRACT "Highways- state, US and interstate (shields only). Derived from
MNDOT roads layer, see http://deli.dnr.state.mn.us/metadata/full/dotrdln2.html for more
information."
WMS_SRS "EPSG:26915"
END
END # highway annotation
LAYER
NAME airports
TYPE POINT
DATA airports
STATUS OFF
CLASS
NAME 'Airports'
STYLE
COLOR 128 255 164
SYMBOL 'circle'
SIZE 7
END
TEMPLATE "templates/airports.html"
END
HEADER "templates/airports_header.html"
FOOTER "templates/airports_footer.html"
TOLERANCE 5
METADATA
WMS_TITLE "Airports"
WMS_ABSTRACT "Airport runways for Itasca County."
WMS_SRS "EPSG:26915"
END
END
LAYER
NAME mcd90py2_anno
GROUP cities
TYPE ANNOTATION
DATA mcd90py2
STATUS OFF
LABELITEM "city_name"
CLASSITEM "city_name"
LABELMAXSCALE 500000
CLASS
EXPRESSION /./
LABEL
COLOR 0 0 0
SHADOWCOLOR 218 218 218
SHADOWSIZE 2 2
TYPE BITMAP
SIZE MEDIUM
POSITION CC
PARTIALS FALSE
BUFFER 2
END
END
METADATA
WMS_TITLE "Minor Civil Divisions"
WMS_ABSTRACT "Minor civil divisions for Itasca County (annotation only)."
WMS_SRS "EPSG:26915"
END
END
END # Map File
49
Anexo 2 – Código ArcXML do arquivo itasca.axl
<?xml version="1.0" encoding="UTF-8"?>
<ARCXML version="1.1">
<CONFIG>
<ENVIRONMENT>
<LOCALE country="BR" language="pt" variant="" />
<UIFONT color="0,0,0" name="Arial" size="12" style="regular" />
<SCREEN dpi="96" />
</ENVIRONMENT>
<MAP>
<PROPERTIES>
<ENVELOPE
minx="372131,818613811"
miny="5159905,20732173"
maxx="569814,0937728978" maxy="5305374,105135358" name="Initial_Extent" />
<MAPUNITS units="decimal_degrees" />
</PROPERTIES>
<WORKSPACES>
<SHAPEWORKSPACE name="shp_ws-0" directory="C:\ArcIMS\arquivosdoworkshop" />
</WORKSPACES>
<LAYER type="featureclass" name="twprgpy3" visible="true" id="0">
<DATASET name="twprgpy3" type="polygon" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL
boundarytransparency="1,0"
filltransparency="1,0"
fillcolor="127,227,27" boundarycaptype="round" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="stprkpy3" visible="true" id="1">
<DATASET name="stprkpy3" type="polygon" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL
boundarytransparency="1,0"
filltransparency="1,0"
fillcolor="127,227,227" boundarycaptype="round" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="plsscpy3" visible="true" id="2">
<DATASET name="plsscpy3" type="polygon" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL
boundarytransparency="1,0"
filltransparency="1,0"
fillcolor="227,27,127" boundarycaptype="round" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="mcd90py2" visible="true" id="3">
<DATASET name="mcd90py2" type="polygon" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL
boundarytransparency="1,0"
filltransparency="1,0"
fillcolor="27,227,27" boundarycaptype="round" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="lakespy2" visible="true" id="4">
<DATASET name="lakespy2" type="polygon" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL
boundarytransparency="1,0"
filltransparency="1,0"
fillcolor="27,127,227" boundarycaptype="round" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="drgidx" visible="true" id="5">
<DATASET name="drgidx" type="polygon" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL
boundarytransparency="1,0"
filltransparency="1,0"
fillcolor="27,227,127" boundarycaptype="round" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="ctybdpy2" visible="true" id="6">
<DATASET name="ctybdpy2" type="polygon" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL
boundarytransparency="1,0"
filltransparency="1,0"
fillcolor="227,227,127" boundarycaptype="round" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="twprdln3" visible="true" id="7">
<DATASET name="twprdln3" type="line" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLELINESYMBOL width="1" captype="round" color="227,127,127" />
</SIMPLERENDERER>
50
</LAYER>
<LAYER type="featureclass" name="rmprdln3" visible="true" id="8">
<DATASET name="rmprdln3" type="line" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLELINESYMBOL width="1" captype="round" color="27,227,227" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="mcdrdln3" visible="true" id="9">
<DATASET name="mcdrdln3" type="line" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLELINESYMBOL width="1" captype="round" color="27,127,127" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="majrdln3" visible="true" id="10">
<DATASET name="majrdln3" type="line" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLELINESYMBOL width="1" captype="round" color="27,27,127" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="dlgstln2" visible="true" id="11">
<DATASET name="dlgstln2" type="line" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLELINESYMBOL width="1" captype="round" color="227,127,227" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="ctyrdln3" visible="true" id="12">
<DATASET name="ctyrdln3" type="line" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLELINESYMBOL width="1" captype="round" color="127,127,27" />
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="airports" visible="true" id="13">
<DATASET name="airports" type="point" workspace="shp_ws-0" />
<SIMPLERENDERER>
<SIMPLEMARKERSYMBOL color="255,0,0" width="5" />
</SIMPLERENDERER>
</LAYER>
</MAP>
</CONFIG>
</ARCXML>
Download

Comparativo entre Software Livre e Software Comercial