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>