Upload
bruno-vani
View
55
Download
0
Embed Size (px)
Citation preview
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