apresentacao mapserver

Upload: bruno-vani

Post on 20-Jul-2015

65 views

Category:

Documents


0 download

TRANSCRIPT

Desenvolvimento de Aplicaes com Dados Espaciais utilizando MapServer e PostgreSQL/PostGISBruno Csar Vani Cincia da Computao FCT Unesp [email protected]

Informaes (geo)espaciaisInformao x Localizao Mapas e dados associados a localizaes so usados no cotidiano para planejamento e gesto de recursos, oferta de servios nos setores pblico e privado; e tambm na elaborao de polticas pblicas. por esta razo que o uso do Geoprocessamento e da Geotecnologia torna-se essencial para gesto, anlise, tomada de deciso em uma imensa gama de atividades. (IBGE, 2010).

GeoprocessamentoGeoprocessamento:Geoprocessamento denota a disciplina do conhecimento que utiliza tcnicas matemticas e computacionais para o tratamento da informao geogrfica[...] (CMARA, DAVIS, MONTEIRO, cap. 1 p. 1)

Sistema de Informao Geogrfica (SIG)Armazenar, analisar e manipular dados geogrficos Abordagem interdisciplinar, com conceitos nas reas de cartografia, sensoriamento remoto, geografia, estatstica, computao, planejamento urbano, etc

Sistema de Informao Geogrfica (SIG)

Arquitetura de Sistema de Informao Geogrfica (CMARA et. al., 1996, p. 24)

Servidor de MapasConforme (PENG, TSOU, 2003), um servidor de mapas o componente capaz de gerar mapas atravs da realizao de consultas espaciais baseadas em requisies do usurio. Principais caractersticas:Realizao de consultas espaciais (confrontando-se os atributos espaciais e descritivos); Gerao de imagens ou componentes visuais elaborados; Comunicao com SGBD's ou outros servidores de mapas

MapServerProjeto de servidor de mapas de cdigofonte aberto que tem como objetivo principal a criao dinmica de mapas para serem visualizados atravs de um navegador de Internet. Principais caractersticas:Visualizao e consultas a dados matriciais, vetoriais e componentes descritivos; Interface com SGBDs, tais como o PostgreSQL e outras fontes de dados (tais como web services e shapefiles); Suporte a vrios sistemas operacionais (Windows, Linux, Mac OS X, etc); Suporte a vrias linguagens de programao (PHP, Python, Perl, Ruby, Java, .NET);

Anatomia de uma aplicao MapServer

Anatomia de uma aplicao MapServer (MAPSERVER, 2010 Introduo)

Entrada de dados

Dados espaciais: conceitosTambm chamados de dados geogrficos ou geoespaciais Pode ser dividido em dois componentes:1. Componente descritivo (alfanumrico): informaes tais como nome e populao de uma cidade 2. Componente espacial localizao em certo espao geogrfico

Dados espaciais: estruturasDuas grandes classes de representao:1. Estrutura matricial (ou raster): Representao atravs de uma matriz, onde cada clula contm um valor correspondente a sua localizao (linha, coluna) e um valor descritivo (por exemplo, um nmero binrio ou inteiro)

Dados espaciais: estruturas2. Estrutura vetorial: Esta representao utiliza pontos, linhas e polgonos para representao do componente espacial, que devem ser associados aos seus atributos descritivos

Dados espaciais: estruturasEstrutura matricial Estrutura vetorial

Sistema Gerenciador de Banco de Dados (SGBD)(DATE, 1941) define SGBD como um sistema capaz de armazenar, consultar e manipular dados em um Banco de Dados Quatro componentes bsicos:

Dados Hardware Software Usurios

PostgreSQL e PostGISPostgreSQL: SGBD de natureza livre e de cdigo-fonte aberto. Conta com a contribuio de usurios para suporte a novas tecnologias PostGIS: mdulo que adiciona suporte a dados espaciais ao PostgreSQL, permitindo ento utiliz-lo como banco de dados geogrfico em um SIG, com suporte a operaes topolgicas e a vrios sistemas de referncia espaciais

Carga de dados no banco - utilitrio 'shp2pgsql'Este utilitrio permite a carga de shapefiles no banco de dados de maneira rpida e eficaz Ele converte os shapefiles em instrues SQL de insero no banco de dados, desta forma, possvel trabalhar com mapas oriundos de vrios programas que possuam a opo de exportao em shapefiles

Exemplo de sada do 'shp2pgsql'SET CLIENT_ENCODING TO UTF8; SET STANDARD_CONFORMING_STRINGS TO ON; BEGIN; CREATE TABLE "public"."sedes" (gid serial PRIMARY KEY, "siglauf" varchar(2), "nome" varchar(100), "pstotal" float8, "pshomens" float8, "psmulheres" float8); SELECT AddGeometryColumn('public','sedes','the_geom','-1','POINT',2); INSERT INTO "public"."sedes" ("siglauf","nome","pstotal","pshomens","psmulheres",the_geom) VALUES ('SP','POPULINA','4450.00','2302.00','2148.00','010100000000000020E84449C0000000E01FF433C0'); INSERT INTO "public"."sedes" ("siglauf","nome","pstotal","pshomens","psmulheres",the_geom) VALUES ('SP','OUROESTE','6290.00','3159.00','3131.00','010100000000000000A52F49C000000060240034C0'); INSERT INTO "public"."sedes" ("siglauf","nome","pstotal","pshomens","psmulheres",the_geom) VALUES ('SP','MESOPOLIS','1930.00','989.00','941.00','0101000000000000C0AB5149C00000004065F733C0');

Vantagens da utilizao do PostgreSQL/PostGIS em relao leitura direta de shapefiles

Indexao permanente dos dados espaciais (em grandes quantidades, resulta em consultas mais rpidas) Possibilidade de manipulao de dados personalizada, com definio de restries por nveis de usurio Automatizao de rotinas (aes padro aps consultas, excluses, inseres, etc.) Realizao de consultas especficas e bem elaboradas atravs da linguagem SQL

Configurao do Mapfile

MapfileArquivo texto de configurao (deve ter o formato .map) que serve de base para a aplicao MapServer. Descreve todos os atributos que sero dispostos no mapa, tais como layers, estilos, legendas, formato do arquivo de sada, dentre outros, bem como onde esto os dados que serviro de base para criao deste mapa. Possui sintaxe prpria, baseada em objetos.

Extrutura do mapfileMAP SIZE 400 200 IMAGETYPE PNG LAYER NAME municipios ..... END #fim do layer municipios LAYER NAME sedes municipais .... END # fim do layer sedes municipais END # fim do mapfile

Modos: CGI e MapScript

Um programa executvel fica disposio no servidor web da aplicao A aplicao requisita a criao de um mapa, para tanto, envia as informaes bsicas atravs da URL e do mapfile Exemplo de URL de requisio:http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/gis/mapfiles/exemplo1.map&mode=map

Modos de funcionamento do MapServer Modo CGI

O modo CGI requer interfaces exclusivamente HTML (arquivos templates), que utilizam variveis especficas mencionadas por tags html entre colchetes Ex: Ex:

Modos de funcionamento do MapServer Modo CGI

Indicado para aplicaes mais simples (pouco dinamismo) Indicado para iniciantes, requer conhecimentos bsicos em HTML

Este modo que funciona sem interveno do modo CGI, permite a utilizao do MapServer em conjunto com outras linguagens de programao, tais como PHP, Perl, Python, Ruby, Tcl, Java e .NET Exemplo php/mapscript:$map_path= "/ms4w/apps/gis/mapfiles/"; $map = ms_newMapObj($map_path.exemplo1.map"); $image=$map->draw(); //cria a imagem $image_url=$image->saveWebImage(); //salva no diretrio echo ($image_url); //mostra a imagem...

Modos de funcionamento do MapServer Modo MapScript

Modos de funcionamento do MapServer Modo MapScript Este modo permite a criao de aplicaes mais dinmicas e completas, incluindo a edio do mapfile na prpria aplicao possvel explorar os recursos da linguagem de programao escolhidas, garantindo maior interoperabilidade (no requer somente HTML)

Servidor Web: Apache

Servidor web - Apache(KUROSE, 2006) define que um servidor web o responsvel por receber as requisies de um cliente web (navegador de internet) e enviar mensagens de resposta. O Apache HTTP Server Project, conforme denominao oficial, um projeto de software desenvolvido atravs de esforo colaborativo que visa a criao de um servidor Web robusto, de grau comercial, com mais recursos e de cdigofonte aberto

Sada

ExemplosOs exemplos que sero mostrados a seguir obedecem a seguinte estrutura:

Mapa dentro de pgina HTML

Vrios layers