MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos...

103
MAPServer Caio Nakashima

Transcript of MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos...

Page 1: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

MAPServer

Caio Nakashima

Page 2: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Webmapping

é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do tipo da aplicação, pode-se eventualmente inferir nos dados geográficos através da própria interface web.é uma alternativa de consulta de informações, que eventualmente pode se tornar muito poderosa se combinada à metodologias como Relatórios e Gráficos.não é um SIG( Sistema de Informação Geográfica)

Page 3: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Vantagensaplicações mais fáceis de se utilizarindependência de plataforma: basta um navegador para acessar a aplicaçãomobilidade do usuário: o usuário só precisa de uma estação com navegador e acesso à web. Não precisa de uma estação fixacentralização de dados: as informações ficam centralizadas no servidorinteroperabilidade: aplicações web podem interagir com sistemas desktop ou outros sistemas web

Page 4: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Desvantagensdependendo da conexão à Internet utilizada, o desempenho pode não ser tão ágil como normalmente são aplicações acessando dados locaisoperações de processamento pesado de dados, normalmente não são possíveis em ambiente

Page 5: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

SIG

Page 6: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

SIGUm Sistema de Informação Geográfica (SIG ou GIS - Geographic Information System, do acrônimo inglês) é um sistema de hardware, software, informação espacial e procedimentos computacionais, que permite e facilita a análise, gestão ou representação do espaço e dos fenômenos que nele ocorrem.

Page 7: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Exemplo SIG

Um exemplo bem conhecido de um protoSIG é o trabalho desenvolvido pelo Dr. John Snow em 1854 para situar a fonte causadora de um surto de cólera na zona do Soho em Londres, cartografando os casos detectados. Esse protoSIG permitiu a Snow localizar com precisão um poço de água contaminado como fonte causadora do surto.

Page 8: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Exemplo WEB Mapping

Page 9: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.
Page 10: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Navegador web: este é o software de interface de usuário. Por meio de um navegador - como FireFox, Konqueror, Internet Explorer, Netscape Navigator ou Opera – o usuário acessa um endereço que contém a aplicação Web;O servidor web, como o Apache ou IIS é o software responsável pela publicação de textos, arquivos HTML, imagens e hyperlinks em uma conexão web;

Page 11: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

O servidor web comunica-se com um "motor webmapping" – como o MapServer ou ESRI ArcIMS – que é o componente responsável por realizar a leitura parametrizada de arquivos de dados geográficos( mapas), efetuar uma operação específica( aproximar, afastar, deslocar, classificar, localizar, etc...) e converter o resultado de uma consulta em uma imagem( GIF, PNG, JPG);

Motor Webmpping

Page 12: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Caso a aplicação necessite de uma grau de customização além do padrão que o software de webmapping dispôr, em algumas ferramentas há a possibilidade de se efetuar uma customização mais aprimorada usando-se linguagens de programação;

Customização

Page 13: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Os dados geográficos devem ser armazenados em formato padrão suportado pelo software de webmapping ou diretamente no banco de dados, caso este suporte dados espaciais;

Dados Geográficos

Page 14: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

O banco de dados compreende as informações de interesse dos usuários e deve estar estruturado de modo que seus dados possam ser relacionados aos dados geográficos e conseqüentemente possibilitar o usuário a obter respostas coesas relacionadas ao seu negócio.

Banco de Dados

Page 15: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Tendências

Page 16: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Interoperabilidadeé cada vez mais comum, seja em ambientes públicos ou privados, a necessidade de se integrar dados oriundos de diferentes fontes e formatos;

Page 17: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Compatibilidade com padrões mundiais

iniciativas como as do Open Geospatial Consortium visam a definição de especificações padrão para o desenvolvimento de aplicações SIG.

http://www.opengeospatial.org/

Dessa forma, teoricamente, será possível realizar a substituição de softwares sem a necessidade de se alterar estruturas de dados;

Page 18: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Migrando para SIGAproximação ao SIG: com a evolução de hardware, software e com a própria evolução da Internet, é natural que as aplicações de webmapping se enriqueçam cada vez mais de recursos, tornando-se mais próximas dos SIGs.

Page 19: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

História1996

ForNet: em uma parceria entre a UMN e o Minnesota DNR , sob patrocínio da NASA, o projeto ForNet visa prover equipes da área florestal com produtos obtidos a partir de imagens de sensoriamento remoto. Dentre os requisitos do projeto, havia a necessidade de se entregar dados geográficos via internet

1997MapServer 1.0: desenvolvido em C, por Stephen Lime, para uso no projeto ForNet. Foi usada a biblioteca ShapeLib( para manipulação de ShapeFiles) e a biblioteca GD( para geração das imagens)

Page 20: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

História (2)2000

MapServer 3.0TerraSIP: neste outro projeto financiado pela NASA, o desenvolvimento do MapServer continuaDaniel Morissette( da DM Solutions) adere ao desenvolvimento do MapServerSuporte a dados matriciais( através da biblioteca LibTIFF) e fontes TrueType( biblioteca FreeType) adicionados surge o website oficial do MapServer que torna-se então um projeto Open Source de conhecimento público

Page 21: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

História (3)2004

1.200 usuários inscritos na lista de discussão oficial2nd MapServer Users Meeting: reuniu 220 pessoas e ampliou o foco para outras tecnologias Open Source para SIGFórum ptMapServer é cedido ao G10/Univali1° Encontro Nacional de Usuários MapServer: reuniu cerca 100 visitantes na Univali em Itajaí/SC

20053rd MapServer Users Meeting3 livros sobre MapServer chegam ao mercado:Web Mapping Illustrated - Tyler Mitchell MapServer : Open Source GIS Development - Bill Kropla Mapping Hacks - Shuyler Erle

Page 22: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

CaracterísticasDados de Entrada

ShapeFilesArcSDEOracle SpatialPostGISMySQLformatos OGR: a biblioteca OGR fornece acesso a diversos formatos vetoriais

ODBC( somente tabelas de pontos)MapInfoDGNCSVGMLe outros

Page 23: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Dados matriciaisTIFF/GeoTIFFJPEGGIFPNGEPPL7formatos GDAL: a biblioteca GDAL fornece acesso a diversos formatos matriciais

ECWENVIHDFERDASPCRastere outros

Page 24: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Formatos de SaídaO MapServer pode gerar mapas nos seguintes formatos:

PNGJPEGGIFWBMP ( para WAP)SWF ( Flash)PDFSVGDXFformatos GDAL

Page 25: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Funcionalidades indexação espacial para ShapeFilescustomização através de arquivos "template" ou MapScriptseleção de objetos por ponto, área, valor ou itemsuporte a fontes TrueTypelegenda, barra de escala, mapa de referência e controles de navegaçãodesenho de objetos de acordo com a escala

Page 26: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

mapas tematicos a partir de expressões lógicas, regulares ou constantes stringsistema anti-colisão para rótulos(labels)reprojeção de dados cartográficos em tempo de execução(PROJ.4)configuração de parâmetros via URLscompatibilidade OGC

WMS - implementa os modos servidor e clienteWFS - implementa os modos servidor e clienteWCS - implementa o modo servidorWMCSLDGMLFilter encoding

Page 27: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Funcionamento do MapServer

Page 28: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

CGIEsta é a maneira mais simples de se trabalhar com o MapServer. Quando se utiliza o MapServer em modo CGI, o seu arquivo executável deve ser colocado em diretório apropriado do servidor web. Este executável irá receber parâmetros de inicialização da aplicação webmapping, processar as requisições solicitadas e retornar ao aplicativo cliente( navegador) o resultado esperado (imagens do mapa, legenda, barra de escala, mapa de referência, ou mesmo códigos HTML).

http://mapserver.gis.umn.edu/download/current

Page 29: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

MapScriptHistoricamente o conceito do MapScript foi introduzido em 2001 quando a canadense DM Solutions disponibilizou a API do MapServer para a linguagem de programação PHP, numa extensão chamada de PHP/MapScript. De maneira sucinta, o MapScript é a disponibilização dos recursos do MapServer para linguagens de programação.

Page 30: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Dessa forma, pode-se combinar os recursos do MapServer com recursos da sua linguagem de programação preferida, visando a criação de aplicações com um grau de customização maior, eventualmente não atingido com aplicações do MapServer em modo CGI.O MapServer MapScript está disponível para as seguintes linguagens de programação:

PHPPythonPerlRubyTCLJavaC#

http://www.maptools.org/php_mapscript/index.phtml

Page 31: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

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

Page 32: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Estrutura geral de uma aplicação MapServer

MapasMapFileFormulário de inicializaçãoArquivos Template

Page 33: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

MapasAntes de mais nada, é preciso ter em mãos os mapas que se deseja publicar com uma aplicação MapServer. Os mapas são enfim, os dados de entrada de sua aplicação e devem estar em um formato que possa ser lido pelo MapServer.

ftp://geoftp.ibge.gov.br/mapas/http://commons.wikimedia.org/wiki/Category:Maps_of_Brazil

Page 34: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

MapFileO MapFile é um arquivo de extensão .map, em formato texto puro, que faz todas as definições e configurações iniciais necessárias para execução de uma aplicação MapServer. Este arquivo é lido pelo MapServer em cada interação do usuário com a aplicação e define diversas características da aplicação como:

que mapas serão disponibilizados? como estes mapas serão apresentados? com que cor? com que símbolo? até que escala o usuário poderá aproximar-se?

Ou seja, o MapFile define como os MAPAS( dados) serão apresentados ao usuário

Page 35: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Formulário de inicializaçãoEm aplicações MapServer em modo CGI, é necessário a presença de um "formulário de inicialização" da aplicação. Este formulário é uma declaração em HTML que enviará ao executável do MapServer parâmetros básicos para a inicialização da aplicação, tais como o caminho do MapFile e endereço(URL) do MapServer CGI.

Page 36: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Arquivos TemplateOs arquivos Template definem a interface ou design da aplicação. Definem como os componentes gerados pelo MapServer

mapa, legenda, barra de escala, etc...) serão apresentados para o usuário e de que forma o usuário poderá interagir com a aplicação.

Page 37: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Descrição dos Arquivossp_uf: shapefile de tipo polígono representando os limites do estado de São Paulosp_muni: shapefile de tipo polígono representando os limites dos municípios do estado de São Paulosp_rvia: shapefile de tipo linha representando as rodovias do estado de São Paulosp_sede: shapefile de tipo ponto representando as sedes municipais do estado de São Paulo

Page 38: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Utilização do MapFile

MAP EXTENT -53.110 -25.312 -44.161 -19.779 SHAPEPATH "mapas" SIZE 400 300 LAYER NAME "uf" TYPE POLYGON DATA "sp_uf" STATUS DEFAULT CLASS NAME "São Paulo" OUTLINECOLOR 0 0 0 COLOR 255 255 192 END ENDEND

exercicio01.map

Page 39: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Forma de Chamar o Mapahttp://localhost/cgi-bin/mapserv.exe?map=C:/Arquivos de Programas/Apache Group/Apache/htdocs/learn2mapit/intro_mapserver/exercicio01.map&mode=maphttp://localhost/cgi-bin/mapserv.exe? map=C:/CAIO/curso/www/exercicio01.map&mode=map

Page 40: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Resultado

Page 41: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Dividindo esta url em várias partes teremos: http://localhost/cgi-bin/mapserv.exe? map=C:/CAIO/curso/www/exercicio01.map&mode=map

localhost : é o endereço do servidor web

/cgi-bin/mapserv : indica o arquivo executável(binário) do MapServer CGI.Neste caso, ele se encontra na pasta "cgi-bin"

map : Este parâmetro indica a localização do MapFile a ser interpretado pelo MapServer.

mode : este parâmetro indica o modo de operação do MapServer. Neste caso, o modo map resultada na geração da imagem do mapa da aplicação.

Page 42: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

MAP File

Page 43: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linha 1:A palavra reservada MAP define o início do MapFile. O objeto MAP é o elemento raiz de um MapFile e todos os outros objetos e propriedades são definidos hierarquicamente abaixo deste elemento. Na linha 18 a palavra END finaliza a definição do objeto MAP.

Page 44: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linha 2EXTENT -53.110 -25.312 -44.161 -19.779A propriedade EXTENT define o retângulo envolvente do mapa na inicialização da aplicação. Os valores informados por estas coordenadas expressam a menor área retangular que faça a cobertura dos mapas da aplicação em sua inicialização. Cada um dos quatro valores que compõem a propriedade EXTENT deve ser informado em formato de número decimal, usando-se o ponto(.) para delimitação de casas decimais.

Page 45: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

ExtentO primeiro par de valores define o canto inferior esquerdo do retângulo envolvente e o segundo par de valores define o canto superior direito do retângulo.c:\MapServer\bin\ogrinfo.exe -all sp_uf.shp >lixo.txt

INFO: Open of `sp_uf.shp'

using driver `ESRI Shapefile' successful.

Layer name: sp_uf

Geometry: Polygon

Feature Count: 1

Extent: (-53.109609, -25.311932) - (-44.160556, -19.779323)

Layer SRS WKT:

Page 46: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

SHAPEPATH e SIZELinha 3

a propriedade SHAPEPATH define o caminho relativo (ao MapFile) ou caminho absoluto dos arquivos de mapas (ShapeFiles, GeoTIFFs, etc...).

Linha 4a propriedade SIZE define as dimensões (largura X altura) da imagem do mapa. Os valores de Largura e Altura da imagem deve ser especificados em pixels.

Page 47: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Layer (Linha 6)a palavra reservada LAYER inicia a declaração de um objeto layer. Na linha 16 a palavra END finaliza a declaração do objeto LAYER . Este objeto pode ser considerado o mais importante de qualquer MapFile, pois é através da declaração de layers é que se pode representar uma camada de informações geográficas. Os layers podem ser usados para a apresentação de mapas de pontos, linhas, polígonos, imagens( dados matriciais) ou apenas para exibição de objetos de textos( rótulos).

Page 48: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

LayerUm MapFile pode conter vários layers, sendo que o primeiro layer declarado aparecerá por baixo de todos os layers na visualização do mapa. E, sendo assim, por dedução, o último layer declarado aparecerá por cima de todos os layers no momento da visualização do mapa.

Page 49: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

NAME – Linha 7a propriedade NAME define o nome do layer para a aplicação. Este nome deve ser uma string de no máximo 20 caracteres e não deve conter espaços ou acentos. O nome do layer é uma referência que permitirá à aplicação, dentre outras coisas, realizar operações como ligar ou desligar um layer, ou mesmo alterar propriedades e objetos de um dado layer.

Page 50: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

TYPE – Linha 8A propriedade TYPE define o tipo de layer a representar. O tipo informado deve corresponder ao tipo dos dados a serem representados no referido layer. Por exemplo, para exibir um layer de polígonos defina o tipo como POLYGON, para um layer de linhas utilize LINE, para pontos use POINT e para dados matriciais use RASTER.

Page 51: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

DATA – Linha 9A propriedade DATA define o nome do arquivo de dados geográficos a ser representado pelo layer. No caso de arquivos ShapeFile, apenas o nome do arquivo pode ser especificado, não havendo necessidade de especificar a extensão ".shp". No exemplo deste exercício, apenas o nome do arquivo foi informado, ou seja, não houve a necessidade de se informar o caminho completo do arquivo pois este já estava definido na propriedade SHAPEPATH.

Page 52: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

STATUSA propriedade STATUS quando definida como DEFAUT, informa ao MapServer que o referido layer sempre será desenhado. Independente do usuário solicitar ou não o desenho de um layer com STATUS DEFAULT, este sempre será desenhado. Outros valores possíveis para esta propriedade são ON e OFF, mas neste caso são usados pelo MapServer conforme o usuário solicitar ou não a ativação do layer na interface da aplicação.

Page 53: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

CLASS Linha 11:

todo layer de representação vetorial deve possuir no mínimo 1( uma) classe. A palavra reservada CLASS indica o início da declaração da classe e na linha 15 a palavra END encerra a definição da classe.

Page 54: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

NAME / OUTLINECOLOR / COLORLinha 12:

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

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

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

Page 55: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Acrescentando mais um Layer... LAYER NAME "rvia" TYPE LINE DATA "sp_rvia" STATUS DEFAULT CLASS NAME "Rodovias" COLOR 255 128 0 END END...

http://localhost/cgi-bin/mapserv.exe?map=C:\CAIO\curso\www\exercicio02.map&mode=map&layer=rvia

Page 56: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Resultado

Page 57: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

A URL é praticamente idêntica à apresentada no exercício do capítulo anterior, exceto pelo fato de constar um novo parâmetro:layer:

este parâmetro indica para o MapServer que o layer de nome rvia deve ser desenhado. O uso deste parâmetro foi necessário porque este novo layer, ao contrário do layer uf não está com STATUS definido para DEFAULT.

Page 58: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linha 19: O nome dado ao layer é o nome usado para a chamada deste layer na URL. O layer de rodovias foi declarado por último, ele aparece por cima

Page 59: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linha 20: como este é um layer de linhas, então o tipo especificado deve ser LINE.

Linha 21: indica o nome do arquivo ShapeFile de rodovias.

Linha 22: indica o início de uma classe. Esta classe será usada para representar as linhas.

Linha 23: indica o nome que aparecerá na Legenda do mapa para esta classe. Para ter uma rápida idéia de como ficará a Legenda, execute o link abaixo:

http://localhost/cgi-bin/mapserv.exe?map=C:\CAIO\curso\www\exercicio02.map&mode=legend&layer=rvia

Page 60: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Alterando a cor de fundo da imagemhttp://localhost/cgi-bin/mapserv.exe?map=C:\CAIO\

curso\www\exercicio02.map&mode=map&layer=rvia&map_imagecolor=70+166+23

Neste link o parâmetro map_imagecolor na URL faz a modificação da cor de fundo da imagem do mapa, que por padrão é da cor branca( 255 255 255 ). Os sinais de "+" no código da cor representam os "espaços".

Page 61: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Resultado

Page 62: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Alterando o tipo de saída da imagemhttp://localhost/cgi-bin/mapserv.exe?map=C:\CAIO\

curso\www\exercicio02.map&mode=map&layer=rvia&map_imagetype=pdf

Neste exemplo a imagem de saída tem seu tipo alterado para PNG através do parâmetro map_imagetype.(gif, png, jpeg,wbmp, gtiff, swf, userdefined, pdf)NOTA: para que formatos de saída não comuns como SWF ou PDF sejam utilizados, é necessário que o MapServer tenha sido compilado com este recurso.

Page 63: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.
Page 64: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Alterando várias opções ao mesmo tempo

Neste exemplo além da cor de fundo e tipo de imagem, também foi alterado o tamanho da imagem através do parâmetro map_size.

http://localhost/cgi-bin/mapserv.exe?map=C:\CAIO\curso\www\exercicio02.map&mode=map&layer=rvia&map_imagetype=jpeg&map_size=600+450&map_imagecolor=70+166+239

Page 65: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Mapas TemáticosA criação de mapas temáticos no MapServer é ser feita através do uso de expressões. Pode-se utilizar expressões string de valor fixo, expressões regulares ou expressões lógicas.

Page 66: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Criando temas com expressões string

http://localhost/cgi-bin/mapserv.exe?map=C:\CAIO\curso\www\exercicio04_1.map&mode=map&layer=rvia

Diferente dos exercícios anteriores, desta vez o layer de Rodovias foi separado em duas classes: Rodovia principal e Rodovia secundária.Observe que o símbolo "#" delimita o início de um comentário.

Page 67: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Resultado

Page 68: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linha 20: A propriedade CLASSITEM define o nome do atributo (campo do DBF) no ShapeFile que será usado como campo de classificação para este layer.

Linha 24: A propriedade EXPRESSION contém a expressão que será usada para a definição da classe. No caso da classe Rodovia principal, somente serão desenhadas, com a cor 255 128 0, as linhas que possuam o valor "SIM" no campo PRINCIPAL do shapefile. A string deve estar preferencialmente entre aspas duplas.

Linha 31:A classe Rodovia secundária, somente serão desenhadas, com a cor 32 64 128, as linhas que possuam o valor "NAO" no campo PRINCIPAL do shapefile.

Page 69: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.
Page 70: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Criando temas com expressões regulares

http://localhost/cgi-bin/mapserv.exe?map=C:\CAIO\curso\www\exercicio04_2.map&mode=map&layer=muni

Page 71: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Código

LAYER # Linha 16 NAME "muni" # Linha 17 TYPE POLYGON # Linha 18 DATA "sp_muni" # Linha 19 CLASSITEM "NOME" # Linha 20 CLASS # Linha 21 OUTLINECOLOR 0 0 0 # Linha 22 COLOR 255 32 32 # Linha 23 EXPRESSION /ARARAQUARA|SAO CARLOS|RIBEIRAO PRETO/ # Linha 24 END # Linha 25 END # Linha 26

Page 72: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Neste exemplo, foi apresentado um novo layer( muni) que tem como base o shapefile sp_muni.shp (Linha 16). No caso, apenas três municípios deste layer foram desenhados.Linha 20:

o campo NOME do shapefile sp_muni foi usado como classificador, através da propriedade CLASSITEM.

Page 73: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.
Page 74: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linha 24: As expressões regulares em objetos do tipo CLASS, devem ser definidas entre barras( / ). No caso da expressão regular definida nesta classe, serão desenhadas as cidades de "Araraquara OU São Carlos OU Ribeirão Preto". O caracter "|" simboliza o operador "OU" dentro da expressão regular.

Para saber mais sobre expressões regulares, visite o link http://aurelio.net/er/ .

Page 75: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Criando temas com expressões lógicas

O uso de expressões lógicas para a definição de mapas temáticos no MapServer, é útil quando há a necessidade de se avaliar mais de um campo (atributo) de um dado layer.

http://localhost/cgi-bin/mapserv.exe?map=C:\CAIO\curso\www\exercicio04_3.map&mode=map&layer=muni&

Page 76: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Não há a definição da propriedade CLASSITEM. Afinal, o uso de expressões lógicas para a criação de classes dispensa o CLASSITEM, pois a expressão lógica pode avaliar um ou mais atributos do layer.Linha 23:

as expressões lógicas devem ser definida entre parênteses e podem conter operadores como >, >=, < ou <=. Os campos( atributos) deve ser definidos com seus nomes entre colchetes. Neste exemplo, esta classe vai desenhar apenas os municípios com população feminina (campo PSMULHERES) maior que a população masculina (campo PSHOMENS)

Page 77: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Estrutura de uma aplicaçãoMapas (.shp, .shx, .dbf)MapFile (.map)Formulário de inicialização (.html)Arquivos Template (.html)

Page 78: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

MapFile WEB

Inicia a declaração do objeto WEB.Este objeto é necessário quando se deseja definir uma interfacede usuário para a aplicação.

IMAGEPATH "tmp/" Informa o caminho relativo ou absoluto do diretório onde serão geradas as imagens temporárias.Este diretório deve possuir permissões de escrita para o usuário do servidor web.

IMAGEURL "/root/tmp/" Informa a URL que será usada para localizar as imagens temporárias.

TEMPLATE "exercicio05_web_template.html" O arquivo Template do objeto WEB define o caminho relativo ou absoluto da página HTML que será usada como modelo para definição da interface da aplicação.

Page 79: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Formulário de inicialização<html>

<head><title>Learn2MapIt - Introdução ao MapServer - Exercício 05</title></head>

<body>

<h4>Formulário de inicialização</h4>

<form name="frm" method="get"

action="/cgi-bin/mapserv.exe" >

<input type="hidden" name="program"

value="/cgi-bin/mapserv.exe" >

<input type="hidden" name="map“

value="C:/caio/curso/www/exercicio05.map">

<input type="submit" value="Iniciar">

</form>

</body>

</html>

Page 80: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Formulário de inicialização (2)O parâmetro action do formulário define o destino de envio dos dados do formulário. Ou seja, na prática é o endereço URL do MapServer CGI.O parâmetro program, aqui enviado na forma de um parâmetro oculto (hidden), tem o mesmo valor do item especificado no action e é necessário para que a aplicação funcione adequadamente após sua inicialização.O parâmetro map indica o MapFile que será processado pelo MapServer CGI

Page 81: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.
Page 82: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

InicializaçãoApós clicar no botão Iniciar os parâmetros contidos no formulário do arquivo exercicio05_iniciar.html (program e map) são enviados ao executável CGI do MapServer. Como não foi enviado o parâmetro mode, o MapServer é iniciado automaticamente com mode = browse. O modo browse é o modo de navegação por interface de usuário e assim sendo, o MapServer procurará pelo arquivo exercicio05_web_template.html que foi definido na propriedade TEMPLATE do objeto WEB MapFile exercicio05.map.Existindo o arquivo Template, o MapServer vai processar este arquivo, e substituir todas as palavras entre colchetes("[]" ) por valores especiais que serão preenchidos pelo MapServer.

Page 83: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Processamento do arquivo TemplateUma vez que o arquivo template exercicio05_web_template.html foi encontrado pelo MapServer, será realizada a substituição de valores definidos entre colchetes por valores gerados pelo MapServer em tempo de execução. Veja logo abaixo, uma lista das substituições realizadas no arquivo exercicio05_web_template.html:Define-se o action do formulário com o valor da variável [program]. Esta variável é enviada pela primeira vez através do formulário de inicialização (no arquivo exercicio05_iniciar.html ) e deve ser mantida através da declaração feita.

Page 84: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linha 8:Nesta linha tem-se a declaração de um objeto hidden que possui seu nome definido como "program" e seu valor será a substituição do texto "[program]" pela URL de endereço do MapServer CGI.

Linha 9Nesta linha tem-se a declaração de um objeto hidden, nomeado como "map" e seu valor será a substituição do texto "[map]" pelo caminho do MapFile.

Linha 10: O parâmetro imgext é necessário para que a aplicação contenha a informação sobre qual o retângulo envolvente atual. Ou seja, toda vez que o MapServer é executado, ele precisa saber quais as coordenadas do retângulo envolvente que a aplicação está naquele momento. O valor "[mapext]" será substituído pelas coordenadas do retângulo envolvente corrente em cada interação com a aplicação.

Page 85: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linha 11: O parâmetro imgxy terá o seu valor substituído pela string "[ center ]".A palavra "[ center ]" calcula as coordenadas do centro da imagem em pixels. E o parâmetro imgxy com este valor servirá para *simular* um clique bem no centro da imagem quando o usuário clicar no botão Atualizar.

Linha 12:O parâmetro zoomsize define o fator de zoom que será usado nas operações de aproximar (zoom in) e afastar (zoom out).

Page 86: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linha 14: Define o "mapa clicável" para a aplicação. O texto "[img]" será substituído pela URL da imagem temporária que foi gerada pelo MapServer. Em cada interação com a aplicação, o MapServer vai gerar uma imagem temporária dentro da pasta definida em MAP->WEB->IMAGEPATH, que será a imagem resultante da solicitação do usuário. Toda vez que o usuário clica sobre este mapa de navegação, são enviados para o MapServer CGI dois parâmetros essenciais para o correto funcionamento do sistema: img.x e img.y - estes parâmetros são as coordenadas (em pixels) do exato ponto clicado pelo usuário.

Page 87: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linhas 18, 19 e 20: Essas três linhas definem os controles de Zoom da aplicação. O parâmetro zoomdir pode assumir 3(três) valores: 1 para aproximar(zoom in), 0 para mover(pan) e -1 para afastar(zoom out). Os valores "[zoomdir_1_check]", "[zoomdir_0_check]" e "[zoomdir_-1_check]" são processados pelo MapServer em cada interação e servem para deixar a última opção que o usuário escolheu já selecionada após o processamento da interação.

Page 88: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Linhas 25 e 26: Estas linhas definem os controles de exibir/ocultar layers da aplicação. Se se ligar um destes layers e interagir na aplicação, após o processamento da solicitação poderá notar que o layer ligado anteriormente já aparecerá ligado na caixa de seleção. Isto ocorre através do processamento das variáveis "[rvia_check]" e "[muni_check]".

Page 89: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

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

Para mais informações sobre os parâmetros usados em arquivos Template,

"CGI Reference" http://mapserver.gis.umn.edu/docs/reference/cgi/referencemanual-all-

pages

"Template Reference".

Page 90: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Simbologia de pontosEm aplicações MapServer é comum o uso de símbolos para a representação de feições, sejam estas do tipo pontos, linhas ou polígonos. Os símbolos podem ser usados na forma de vetores, caracteres especiais ou mesmo imagens.

Page 91: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

. . .SYMBOL # linha 8: inicia a declaração de um símbolo

NAME    "SYM_CIRCULO" # linha 9: nome do símbolo.TYPE    ELLIPSE # linha 10: o tipo 'ELLIPSE' cria um símbolo em forma de elipseFILLED  TRUE # linha 11: definindo FILLED como TRUE, o símbolo

# será desenhado com preenchimento e não vazadoPOINTS # linha 12: para símbolos do tipo 'elipse', os pontos

# aqui definidos representam os valores de raio(X,Y) da elipse      1 1 # linha 13: usando o mesmo valor para os raios X e Y de

# uma elipse, cria-se um circulo ENDEND. . .

LAYER NAME sede" # linha 64: este é o layer das Sedes Municipais TYPE POINT # linha 65: o tipo do layer é de pontos DATA "sp_sede" # linha 66: nome do arquivo shapefile do layer das sedes CLASS NAME "Sedes municipais" COLOR 255 0 0 SYMBOL "SYM_CIRCULO" # linha 70: nome do símbolo( conforme # definido na linha 9) a ser usado para # representar o layer SIZE 3 # linha 71: tamanho do símbolo, em pixels ENDEND

Page 92: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

ResultadoCom o formulário de inicialização e o template.

Page 93: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Usando imagens como símbolosSYMBOL NAME "SYM_PONTO" TYPE PIXMAP # símbolos de tipo PIXMAP são # símbolos definidos por uma imagem IMAGE "cidmun.png" # linha 20: caminho

#relativo ou absoluto do arquivo #de imagem que será usado como símboloEND

Page 94: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Adicionando uma legendaA Legenda é um componente essencial em qualquer mapa para auxiliar o usuário a interpretar os dados representados pelo mapa. Através da legenda o usuário poderá identificar e distinguir visualmente os diferentes elementos de dados representados no mapa.

Page 95: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Analisando os arquivos (MAP File)LEGEND # linha 29: inicia a declaração da Legenda IMAGECOLOR 255 255 255 # linha 30: define a cor de # fundo da imagem da Legenda KEYSIZE 12 10 # linha 31: define as dimensões #(Largura x Altura) dos ícones das classes da # Legenda STATUS ON # linha 32: quando STATUS = ON, # a imagem temporária da legenda será criada. # Quando STATUS = EMBED, a imagem da legenda #será inserida na imagem do mapaEND

Page 96: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Analisando os arquivos (Template)<img src="[legend]" alt="Legenda">

Page 97: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Adicionando uma Barra de escalaApresentar o código do MAPFile e Template

Page 98: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Exibindo rótulosAlém de cores e simbologias, outro componente essencial para a interpretação de mapas são os rótulos ( textos). Os rótulos são textos que se posicionam sobre ou ao lado de feições geográficas para auxiliar o usuário na identificação de objetos.

Page 99: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

FontSetO MapServer possui o recurso de desenhar rótulos usando fontes bitmap ou fontes True Type. As fontes bitmap são a opção padrão do MapServer para o desenho de textos - como exemplo, observe os textos presentes nos objetos Legenda e Barra de escala.Usando fontes True Type é possível garantir aos textos um aspecto visual mais agradável que as fontes bitmap. E para utilização de fontes True Type, é necessário o uso de um arquivo FontSet.

Page 100: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

FontSet (2)O FontSet é um arquivo texto que contém uma lista das fontes True Type que poderão ser usadas por um dado MapFile. No conteúdo do arquivo FontSet cada linha deve conter:

na primeira coluna, um nome para a fonte especificada;e na segunda coluna, o caminho( relativo ou absoluto) para o arquivo .ttf da referida fonte True Type.

Page 101: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

fontset.txt fte_fritqat fritqat.ttffte_vera Vera.ttf

Page 102: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Executando consultasUma outra forma de se obter informações sobre um dado objeto geográfico em aplicações MapServer é através de seu modo de operação query, ou "consulta" em Português. Através de uma consulta, é possível exibir dados sobre um objeto geográfico selecionado pelo mapa de navegação.

Page 103: MAPServer Caio Nakashima. Webmapping é uma técnica para visualização de dados geográficos através de aplicações web (Internet/Intranet). Dependendo do.

Fonteshttps://www.webmapit.com.br/http://pt.wikipedia.org/wiki/Sistemas_de_Informação_Geográfica