TerraWeb ? Março/2006 Gilberto Ribeiro de Queiroz – [email protected] Sueli Castellari – [email protected] Time TerraLib TerraPHP Extensão da Linguagem PHP: Habilita desenvolvedores PHP a usarem recursos da TerraLib: • Visualização e consultas a bancos de dados geográficos • Extensão escrita em C++ • Código fonte aberto e gratuito como tudo na TerraLib Uso de diversas bibliotecas open-source: • FreeType, IJG JPEG, GD, lib PNG, zlib Exemplo de aplicação: • TerraWeb Arquitetura de Aplicações PHP com TerraPHP Servidor Web (Apache) Aplicações PHP TerraPHP (C++) PHP C++ TerraLib – C++ Oracle MySQL Exemplo de aplicação PHP com TerraPHP Exemplo de aplicação PHP com TerraPHP <? /* Conecta com um banco de dados MySQL e exibe o mapa do Brasil agrupado por algum atributo */ $t = TerraWeb(); // Conecta-se a um banco MySQL if(!$t->connect("localhost", "root", "", "terraweb", 3306, 1)) { echo("Nao foi possivel conectar-se ao banco de dados<BR>"); echo($t->errorMessage()); exit(); } // Torna a vista BRASIL a vista corrente if($t->setCurrentView("VISTA_SP") == false) { echo($t->errorMessage() . "<BR>"); exit(); } Exemplo de aplicação PHP com TerraPHP ... // Pega o retângulo envolvente de todos os temas da vista $box = $t->getCurrentViewBox(); // Ajusta a visão do canvas onde os dados geográficos serão // desenhados: PNG de 800x600 $t->setWorld($box[0], $box[1], $box[2], $box[3], 800, 600); // Seta o tema corrente $result = $t->setTheme("DISTRITOS", 0); // Plota o tema corrente $result = $t->plotVector(); Exemplo de aplicação PHP com TerraPHP ... $imagemSaida = $t->getPNG(); if($imagemSaida == false) { echo($t->errorMessage() . "<BR>"); exit(); } header("Content-type: image/png"); echo($imagemSaida); ?> Arquitetura TerraPHP Aplicações PHP PHP C++ TerraView C++ TerraPHP (C++) TerraManager – C++ TerraLib – C++ PostGIS Oracle MySQL Access TerraManager TeGDCanvas: Desenho de objetos geométricos da TerraLib: • TePoint, TePolygon, TeLine2D, TeRaster Exportação dos desenhos em memória: • PNG ou JPEG TerraManager: Conexão com Bancos de Dados Desenho de Temas Localização de objetos Estado de uma aplicação de consulta Documentação: DOxygen código fonte TerraWeb? Aplicações PHP Aplicações ASP Aplicações XXXX PHP C++ ASP C++ (?) TerraPHP (C++) TerraASP(C++) TerraX (C++) TerraView C++ TerraManager – C++ TerraLib – C++ PostGIS Oracle MySQL Access TerraWeb ? Conceito geral de desenvolvimento de aplicações Web: PHP ASP Java Phython ... Plataforma de suporte: TerraManager TerraWeb: Futuro? Melhoria do ambiente de desenvolvimento Aperfeiçoamento do Canvas: Uso de símbolos Cache Geográfica: Servidor Protocolos de comunicação do TerraWeb: WMS, WFS, WLS... Documentação: Guia do usuário TerraWeb Guia do desenvolvedor TerraWeb