MANIPULAÇÃO DE DADOS GEOGRÁFICOS POR INTERMÉDIO DE DOCUMENTOS KML NA PLATAFORMA JAVA

Tamanho: px
Começar a partir da página:

Download "MANIPULAÇÃO DE DADOS GEOGRÁFICOS POR INTERMÉDIO DE DOCUMENTOS KML NA PLATAFORMA JAVA"

Transcrição

1 FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS ANDRÉ GOMES DE OLIVEIRA MANIPULAÇÃO DE DADOS GEOGRÁFICOS POR INTERMÉDIO DE DOCUMENTOS KML NA PLATAFORMA JAVA SÃO JOSÉ DOS CAMPOS 2011 ANDRÉ GOMES DE OLIVEIRA

2 2 MANIPULAÇÃO DE DADOS GEOGRÁFICOS POR INTERMÉDIO DE DOCUMENTOS KML NA PLATAFORMA JAVA TRABALHO DE GRADUAÇÃO APRESENTADO FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS, COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO TÍTULO DE TECNÓLOGO EM BANCO DE DADOS. Orientador: Reinaldo Gen Ichiro Arakaki Co-orientador: Ubirajara Moura de Freitas SÃO JOSÉ DOS CAMPOS 2011 ANDRÉ GOMES DE OLIVEIRA

3 3 MANIPULAÇÃO DE DADOS GEOGRÁFICOS POR INTERMÉDIO DE DOCUMENTOS KML NA PLATAFORMA JAVA TRABALHO DE GRADUAÇÃO APRESENTADO FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS, COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO TÍTULO DE TECNÓLOGO EM BANCO DE DADOS. DANIELA LEAL MUSA CARLOS AUGUSTO LOMBARDI GARCIA REINALDO GEN ICHIRO ARAKAKI UBIRAJARA MOURA DE FREITAS / / DATA DE APROVAÇÃO

4 4 AGRADECIMENTOS Agradeço a minha família e aos colegas de classe, pelo apoio e encorajamento durante os três anos de muitos desafios na faculdade. A equipe de estagiários da oficina de programação Funcate/Fatec pelo apoio e lições compartilhadas durante todo o tempo que passamos juntos. Aos companheiros da Funcate Felipe Valério de Siqueira, Cláudio Bogossian, José Thomazini e Claudete Borges pelo apoio nas pesquisas e desenvolvimento do trabalho. Agradeço também ao co-orientador Ubirajara Moura de Freitas pelo apoio na escolha do tema e no desenvolvimento do protótipo, ao orientador Reinaldo Gen Ichiro Arakaki pelas orientações em relação ao conteúdo e organização do trabalho e ao professor Giuliano Araujo Bertoti pelas dicas em relação à estruturação do documento. Por fim, agradeço a Deus por esses três anos de vida e pela vitória em meio a tantos desafios. Peço a Deus que abençoe a vida de todas as pessoas que passaram pela minha vida nestes três anos, a todos vocês o meu muito obrigado e até logo.

5 5 Ninguém comete erro maior do que não fazer nada porque só pode fazer pouco Eduardo Burke

6 6 RESUMO A área da tecnologia da informação evolui continuamente, neste contexto, surgem novas tecnologias que trazem novas possibilidades. O geoprocessamento não poderia ser diferente, como novos meios de disseminação de dados geográficos e aplicações que disponibilizam serviços cada vez mais inovadores surgindo constantemente, com isso, é necessário que os desenvolvedores possuam ferramentas para auxiliar no desenvolvimento e aplicação destas novas tecnologias. Este trabalho apresenta conceitos sobre a área do geoprocessamento e uma das novas tecnologias da área, a Keyhole Markup Language (KML), e seu propósito é a implementação de um protótipo, no ambiente Java, que viabilize a obtenção e manipulação dos dados geográficos contidos em documentos KML, com o intuito de facilitar a adoção desta tecnologia e agilizar o desenvolvimento de aplicações que a utilizem. Por fim, alguns documentos KML são manipulados, no ambiente Java, com o intuito de demonstrar as funcionalidades proporcionadas pelo protótipo desenvolvido. Palavras chave: KML. Geoprocessamento. Dados geográficos.

7 7 ABSTRACT The Information Technology Field is continuously evolving, in this context, new technologies emerge bringing new possibilities. The geoprocessing could not be different, with new means to share geographical data and applications that provide innovative services being created continuously, due to that fact, developers need to have tools that aid in the development and application of these new technologies. This study presents concepts about the geoprocessing and one of the new technologies of the field, the Keyhole Markup Language (KML), and it s purpose is the implementation of a prototype, in the Java environment, that provide ways of obtaining and manipulating geographical data contained within KML files, with the intent of aiding in the adoption of this technology and speeding up the process of development of applications that use it. Finally, some KML documents are manipulated, in the Java environment, in order to show the functions provided by the prototype that was developed. Keywords: KML. Geoprocessing. Geographical data.

8 8 LISTA DE FIGURAS Figura 1 - Principais componentes do GLUE Figura 2 - Demonstração de temas visíveis em um determinado nível de zoom Figura 3 - Demonstração de um tema não visível em um determinado nível de zoom...22 Figura 4 - Demonstração de alterações decorrentes da reordenação da ordem de visualização dos temas...22 Figura 5 - Seleção de um plano de informação Figura 6 - Mapa temático representando os dados do plano de informação selecionado Figura 7 - Tema representando os dados dos limites da Rússia Figura 8 - Vista formada pelos temas EUA, Canadá e México Figura 9 - Modelo lógico de um banco de dados Terralib...28 Figura 10 - Estrutura Terralib Figura 11 - Rodovias e áreas prioritárias de preservação ambiental Figura 12 - Junção do mapa do México com informações topológicas Figura 13 - Distância de um lote até a rodovia Figura 14 Visualização em 3D do Grand Canyon Figura 15 - Visualização em 3D da cidade de Nova Iorque Figura 16 - Exemplo de arquivo XML com um catálogo de CDs Figura 17 - Exemplo da utilização de um arquivo XML em uma aplicação web Figura 18 - Hierarquia dos elementos de um documento KML Figura 19 - Exemplo de placemark básico gerado no Google Earth Figura 20 - Exemplo de documento KML Figura 21 - Utilização do KML para criar animações parte um Figura 22 - Utilização do KML para gera animações parte dois Figura 23 - Aplicação que relaciona notícias da CNN a pontos do mapa Figura 24 - Aplicação que integra um blog ao Google Maps Figura 25 - Estilização dos pontos Figura 26 - Figura que representa uma aplicação capaz de gerar e exportar arquivos KML Figura 27 - Resultado da exportação do documento KML...50 Figura 28 - Mapeamento Java /KML Figura 29 - Diagrama de classes do módulo KMLHandler Figura 30 - Diagrama de Classes da InterfaceKML...55 Figura 31 - Casos de uso Figura 32 - Criar marcador Figura 33 - Importar KML Figura 34 - Exportar KML Figura 35 - Editar o KML da aplicação Figura 36 - Interfaces do KMLHandler Figura 37 - Métodos de leitura e escrita de arquivos KML Figura 38 - Trecho do método responsável pela recuperação de uma lista de marcadores Figura 39 - Trecho do método responsável pela recuperação de uma lista de imagens sobrepostas Figura 40 - Método responsável pela recuperação de uma lista de pontos....67

9 Figura 41 - Método responsável pela recuperação de uma lista de polígonos Figura 42 Método responsável por atualizar o KML ao receber um marcador Figura 43 - Método responsável por atualizar o KML ao receber uma lista de marcadores parte Figura 44 - Método responsável por atualizar o KML ao receber uma lista de marcadores parte Figura 45 - Método responsável por atualizar o KML ao receber um link de rede Figura 46 - Método responsável por atualizar o KML ao receber uma lista de links de rede Figura 47 - Método responsável por atualizar o KML ao receber um ponto Figura 48 - Método responsável por atualizar o KML ao receber uma lista de pontos parte Figura 49 - Método responsável por atualizar o KML ao receber uma lista de pontos parte Figura 50 - Método responsável por atualizar o KML ao receber uma linha Figura 51 - Método responsável por atualizar o KML ao receber uma lista de linhas Figura 52 - Código da criação de um marcador Figura 53 - Criação de marcador Figura 54 - Código da modificação de marcador Figura 55 - Marcador antes da modificação Figura 56 - Marcador depois da modificação Figura 57 - Código da modificação de diversos marcadores Figura 58 - Quatro marcadores antes da modificação Figura 59 - Quatro marcadores depois das modificações Figura 60 - Código da remoção de marcadores Figura 61 - Marcadores antes da remoção Figura 62 - Marcadores depois da remoção...84 Figura 63 - Código da modificação de pontos Figura 64 Pontos antes da modificação Figura 65 Pontos depois da modificação Figura 66 - Código da modificação de linhas Figura 67 - Linhas antes da modificação...87 Figura 68 - Linha depois da modificação Figura 69 - Código da modificação de polígonos Figura 70 - Polígono antes da modificação Figura 71 - Polígono depois da modificação

10 10 LISTA DE ABREVIATURAS E SIGLAS AJAX: Asynchronous Javascript and XML. API: Application Programming Interface. CD: Compact Disk. Fatec-SJC: Faculdade de Tecnologia de São José dos Campos. Funcate: Fundação de Ciência, Aplicações e Tecnologias Espaciais. GLUE: Geographical Lightweight Universal Engine. HTML: HyperText Markup Language. JAK: Java API for KML. KML: Keyhole Markup Language. MMA: Ministério do Meio Ambiente. OGC: Open Geospatial Consortium. ONU: Organização das Nações Unidas. SIG: Sistema de Informação Geográfica. SWIG: Simplified Wrapper and Interface Generator. UML: Unified Modeling Language. XML: extensible Markup Language.

11 11 SUMÁRIO 1 INTRODUÇÃO MOTIVAÇÃO OBJETIVOS OBJETIVO GERAL OBJETIVOS ESPECÍFICOS METODOLOGIA ORGANIZAÇÃO DO TRABALHO 15 2 INTRODUÇÃO A GEOPROCESSAMENTO INTRODUÇÃO SISTEMAS DE INFORMAÇÃO GEOGRÁFICA GEOGRAPHICAL LIGHTWEIGHT UNIVERSAL ENGINE (GLUE) OBJETOS DE VISUALIZAÇÃO BANCO DE DADOS GEOGRÁFICOS ANÁLISE ESPACIAL 30 3 INTRODUÇÃO A ARQUIVOS KML ARQUIVOS XML ARQUIVOS KML OBJETIVOS DOS ARQUIVOS KML APLICAÇÕES PRÁTICAS DOS ARQUIVOS KML KML NA PLATAFORMA JAVA 50 4 MODELAGEM DA SOLUÇÂO INTRODUÇÃO MÓDULO KMLHANDLER MÓDULO INTERFACEKML FUNCIONALIDADES A SEREM DESENVOLVIDAS 56 5 DESENVOLVIMENTO DA SOLUÇÃO PROPOSTA APLICAÇÃO DO PADRÃO OBSERVER NO KMLHANDLER IMPORTAR E EXPORTAR DADOS EM FORMATO KML RECUPERAÇÃO DE RECURSOS E GEOMETRIAS DE UM ARQUIVO KML MANIPULAÇÃO DE RECURSOS E GEOMETRIAS NO AMBIENTE JAVA 68 6 RESULTADOS OBTIDOS INTRODUÇÃO CRIAÇÃO E MANIPULAÇÃO DE RECURSOS CRIAÇÃO E MANIPULAÇÃO DE GEOMETRIAS 85 7 CONSIDERAÇÕES FINAIS CONTRIBUIÇÕES E CONCLUSÕES TRABALHOS FUTUROS 92 REFERÊNCIAS BIBLIOGRÁFICAS 94

12 12 1 INTRODUÇÃO 1.1 Motivação A representação de dados geográficos por meios computacionais vêm sido utilizada como ferramenta para a solução de diversos problemas que necessitam de um meio para correlacionar dados específicos com informações geográficas (topografia, limites territoriais, etc.). Pode-se exemplificar a utilização de bancos de dados geográficos com a seguinte situação: Determinada empresa do setor comercial possui um banco de dados com as informações relativas às vendas de cada um de seus produtos (quantidade vendida, comprador, etc.). Esta empresa deseja avaliar seus dados com o intuito de averiguar qual a relação ente os produtos vendidos e os compradores avaliando informações referentes à residência do comprador, seu poder aquisitivo, entre outras informações que auxiliarão na elaboração de planos de negócios futuros.(câmara, 2005) Percebe-se que, em um caso como este, a utilização de um banco de dados geográficos permitiria a ligação das informações geográficas disponíveis sobre a região analisada e os dados que a empresa possui, por sua vez, essa ligação permitiria a obtenção das informações que esta empresa deseja para elaborar suas estratégias de vendas. Portanto, devido a possibilidades como essa, a utilização de bancos de dados geográficos e de sistemas de informação geográfica (SIG), que são os programas que possibilitam a apresentação destes dados, tornou-se uma forma prática e útil para resoluções de problemas. Não obstante, o ambiente web propicia diversos recursos para trabalhar e apresentar informações geográficas, como por exemplo, a utilização de arquivos KML, que permitem a obtenção e escrita de dados geográficos em um formato amplamente disseminado.(boulos, 2005)

13 13 KML é uma linguagem baseada em XML e serve para expressar anotações geográficas e visualização de conteúdos existentes nessa linguagem como mapas em 2D e navegadores terrestre em 3D. O KML utiliza uma estrutura com elementos e atributos aninhados. (Tutorial KML, 2010) Com a utilização de arquivos KML, um SIG pode proporcionar novas funcionalidades aos usuários, por exemplo: Criar ícones e rótulos para especificar localidades em qualquer ponto da superfície do planeta; Definir estilos para apresentação das informações; Combinar HTML com o arquivo para incluir hiperlinks na apresentação; (SMITH, 2006) Em suma, a utilização de SIGs combinados com as mais novas tecnologias disponíveis permite a resolução de problemas mais complexos, bem como uma apresentação de dados geográficos de forma mais dinâmica e interativa. 1.2 Objetivos Objetivo Geral Manipulação de dados geográficos, contidos em documentos no formato KML, na plataforma Java.

14 Objetivos específicos Os objetivos específicos deste trabalho são: a) Pesquisar bibliotecas e Application Programming Interfaces (APIs) existentes, bem como funcionalidades disponíveis na biblioteca Terralib que poderão auxiliar no desenvolvimento do trabalho. b) Desenvolver um módulo, em linguagem Java, que viabilize a obtenção de dados geográficos por intermédio da leitura de arquivos KML, a manipulação de arquivos KML no ambiente Java e gerar arquivos KML a partir das informações disponíveis na aplicação; c) Incorporar o módulo desenvolvido ao portal geográfico desenvolvido na oficina de programação Funcate/Fatec-SJC. 1.3 Metodologia O desenvolvimento deste módulo foi dividido em etapas para facilitar o processo de desenvolvimento e sua aplicação prática. Inicialmente, foram pesquisadas as bibliotecas existentes na linguagem Java para a manipulação de arquivos KML com o intuito de verificar quais funcionalidades podem ser aproveitadas, de modo semelhante, a biblioteca Terralib foi analisada para verificar quais funções podem ser utilizadas na integração entre o módulo e o SIG desenvolvido na oficina de programação Funcate/Fatec-SJC. Em seguida, os recursos obtidos com as análises foram usados para desenvolver o módulo de leitura de arquivos KML, para a obtenção de dados geográficos, e de escrita, com o intuito de gerar arquivos KML a partir de dados geográficos.

15 15 Por fim, o módulo desenvolvido foi testado, para garantir que as funcionalidades desenvolvidas estejam funcionando corretamente, por intermédio de uma aplicação que trabalhe com documentos KML. 1.4 Organização do Trabalho Este Trabalho está organizado da seguinte forma: a) Capítulo 2: Introdução a geoprocessamento. Neste capítulo são apresentados os conceitos básicos sobre geoprocessamento necessários para compreender o tema deste trabalho, bem como algumas características distintas de bancos de dados geográficos. b) Capítulo 3: Introdução a arquivos KML. Neste capítulo a estrutura de um arquivo KML é apresentada, a sua relação com dados geográficos bem como exemplos da utilização destes arquivos para a leitura e escrita destes dados por intermédio de aplicações consolidadas na área. c) Capítulo 4: Modelagem da solução. Neste capítulo são apresentados os recursos a serem utilizados no desenvolvimento e a modelagem UML do módulo desenvolvido, incluindo: 1. Diagrama de casos de uso; 2. Diagrama de classes; 3. Diagramas de sequência; d) Capítulo 5: Desenvolvimento do módulo. Neste capítulo são abordados os métodos utilizados para desenvolver o módulo que permitirá o uso de arquivos KML para obtenção, manipulação e escrita de dados geográficos. e) Capítulo 6: Resultados obtidos: Neste capítulo é apresentado o resultado final do trabalho, por intermédio da demonstração dos dados obtidos a partir da leitura de

16 16 arquivos KML, as modificações efetuadas utilizando o módulo desenvolvido, bem como arquivos KML resultantes da escrita a partir de dados geográficos préexistentes. f) Capítulo 7: Considerações finais. Neste capítulo são apresentados os resultados e conclusões obtidos com o desenvolvimento deste trabalho bem como as propostas de trabalhos futuros.

17 17 2 INTRODUÇÃO A GEOPROCESSAMENTO Este capítulo apresenta uma introdução sobre os conceitos relacionados à área de geoprocessamento, apresentando o que é o geoprocessamento, quais são os principais conceitos da área e qual é a sua aplicação. Este capítulo esta dividido da seguinte forma: A seção 2.1 apresenta uma introdução ao assunto tratado neste capítulo, a seção 2.2 mostra o que são os Sistemas de Informação Geográfica, a seção 2.3 demonstra algumas funcionalidades de um SIG, a seção 2.4 apresenta os objetos relacionados a dados geográficos, a seção 2.5 mostra os conceitos relacionados a bancos de dados geográficos e a seção 2.6 mostra conceitos e aplicações da área de geoprocessamento para a análise de dados geográficos. 2.1 Introdução Geoprocessamento engloba tecnologias voltadas à obtenção e manipulação de dados geográficos com o intuito de atingir um objetivo específico. As atividades envolvendo o geoprocessamento são executadas por sistemas computacionais mais comumente chamados de Sistemas de Informação Geográfica (SIG). (DPI-INPE, 2010) A principal utilização do geoprocessamento é a resolução de problemas e a obtenção de informações que dependam da análise de informações geográficas. Basicamente, a obtenção e análise de dados espaciais é uma necessidade recorrente a cientistas (como geólogos e ecologistas), planejadores urbanos, engenheiros civis, ente outros profissionais para os quais os dados geográficos representam um fator chave no processo de tomada de decisão. (BURROUGH, 1998)

18 18 Não obstante, a informatização da análise espacial têm tornado a área do geoprocessamento em uma área que se desenvolve rapidamente, provendo cada vez uma variedade maior de tecnologias e ferramentas de apoio, como SIGs e ferramentas de análise espacial desenvolvidas para o ambiente web, novas fontes de dados geográficos que disponibilizam seus dados. Essas ferramentas dispensam o uso de aplicações locais, pois o cliente não precisa ter o software instalado em uma máquina local para visualizar e analisar os dados, dentre essas ferramentas destacam-se o uso de Applets Java, mapas interativos em flash, aplicações Asynchronous Javascript and XML (AJAX) e web 2.0 (SMITH, 2009); Há dois tipos principais de dados que são visualizados e manipulados em um SIG, são eles: (CÂMARA, 2005) Dados espaciais: Descrevem as características geográficas de uma área; Dados alfanuméricos: Descrevem os atributos destas características; 2.2 Sistemas de informação geográfica A análise de dados geográficos e a obtenção de informações de pesquisa tornaram-se mais necessárias para a tomada de decisões, com isso, os ambientes computadorizados tornaram-se uma ferramenta com a possibilidade de facilitar a análise dos dados, portanto, a criação de um tipo específico de programa com o intuito de viabilizar a análise espacial em um destes ambientes era algo necessário. Por meio de um programa específico os cientistas (como geólogos e biólogos) e profissionais de áreas como a construção civil, bombeiros ou até mesmo delegacias de polícia, podiam analisar os dados geográficos de forma mais rápida e intuitiva, estes programas tornarem-se conhecidos como sistemas de informação geográfica ou SIG. (BURROUGH, 1998) Um SIG é definido como um sistema computacional capaz de exibir e manipular dados geográficos armazenados em um determinado banco de dados geográficos. Um SIG é composto por várias camadas, dentre elas destacam-se a interface com o usuário (meio de o usuário interagir o sistema), uma camada que proporcione a visualização dos dados na tela, e

19 19 outras camadas responsáveis pela integração, armazenamento e processamento dos dados geográficos. (CÂMARA, 2002) Por meio dos SIGs os usuários são capazes de visualizar dados geográficos com o propósito de melhorar o processo de análise espacial. Outra vantagem proporcionada por estes programas é a disseminação e aproveitamento de dados geográficos pela internet. Como a internet é um meio de comunicação aberto, onde os custos para armazenamento de dados e sua disseminação têm diminuído, surgiram meios cada vez mais desenvolvidos de distribuir e adquirir dados geográficos, mesmo que não haja um consenso geral definitivo de qual a melhor forma de distribuir os dados na rede. (CÂMARA, 2005) Algumas funcionalidades básicas de um SIG estão relacionadas ao controle sobre como visualizar os dados geográficos e quais dados serão visualizados. O programa desenvolvido na oficina de programação Funcate/Fatec-SJC será usado para exemplificar essas funcionalidades. 2.3 Geographical Lightweight Universal Engine (GLUE) A oficina de programas Funcate/Fatec-SJC é uma parceria entre a Funcate e a Fatec-SJC realizada com o intuito de desenvolver um portal geográfico para o ambiente web utilizando apenas tecnologias gratuitas ou open-source, este sistema já possui as funcionalidades básicas de um SIG bem como algumas funcionalidades extras, como a união de informações provenientes de fontes diferentes, e seu nome é Geographical Lightweight Universal Engine (GLUE). Os principais componentes do GLUE podem ser visualizados na figura 1:

20 20 Figura 1 - Principais componentes do GLUE. Fonte: GLUE, Árvore: Este é o componente de controle, por intermédio dele o usuário pode selecionar quais informações ele quer visualizar, a ordem, entre outras funcionalidades de controle; Toolbar: É a barra de ferramentas pela qual o usuário decide como manipular a área de visualização, como por exemplo, efetuar o zoom, arrastar o mapa, redesenhar, entre outras; Canvas: É a área de visualização da aplicação, nela as informações selecionadas na árvore serão exibidas e podem ser manipuladas usando as ferramentas da Toolbar. Podem-se exemplificar as funcionalidades de um SIG nas imagens a seguir.

21 21 Figura 2 - Demonstração de temas visíveis em um determinado nível de zoom. Fonte: GLUE, A figura 2 demonstra a utilização do controle de visualização por escala. Pela análise da figura pode-se concluir que, na escala de visualização 1:163266, todos os temas da vista Brasil estão visíveis para o usuário. A figura 3 demonstra o que ocorre quando o usuário aumenta a escala de visualização, nesta figura pode-se perceber que, na escala de visualização 1: , o tema brasil_pontos ficaria ilegível, portanto, ele não é exibido para o usuário.

22 22 Figura 3 - Demonstração de um tema não visível em um determinado nível de zoom. Fonte: GLUE, No GLUE, para auxiliar o entendimento por parte do usuário, a legenda abaixo da árvore de visualização exibe quais ícones serão exibidos para cada estado do tema, na figura 3, percebese que o ícone do tema brasil_pontos corresponde ao item Não Visível da legenda o que indicia que, nesta escala de visualização, este tema não pode ser visualizado. Figura 4 - Demonstração de alterações decorrentes da reordenação da ordem de visualização dos temas Fonte: GLUE, 2010;

23 23 Na figura 4, embora a árvore deixe claro que os temas da vista Brasil estão visíveis, a ordem de visualização selecionada pelo usuário impossibilita a visualização dos temas rodovias_br e Brasil_pontos, pois no GLUE, os temas são desenhados na tela começando pelo último tema da vista e terminando no primeiro, com isso, embora os temas rodovias e pontos tenham sido desenhados, o tema brasil_limites foi desenhado por cima e impossibilitou a visualização dos outros temas. As funcionalidades dos SIGs possibilitam a análise espacial sobre dados espaciais atualizados, oriundos de processos de obtenção de dados como o sensoriamento remoto e análises cartográficas, de forma rápida e intuitiva, o que é crucial para atender as necessidades do mercado deste século. (BURROUGH, 1998) 2.4 Objetos de visualização A biblioteca Terralib é uma biblioteca de código aberto escrita na linguagem C++ que foi criada com o intuito de servir como base para a criações de SIGs. Ela possui uma coleção de funções para o tratamento de dados geográficos, estruturas de dados espaço-temporais, algoritmos de análise espacial e, com isso, encapsula as estruturas de controle e comunicação com o banco o que permite maior flexibilidade no desenvolvimento dos SIGs, pois os desenvolvedores não precisam se preocupar com a comunicação com o banco de dados. Esta biblioteca foi desenvolvida pelo Instituto Nacional de Pesquisas Espaciais (INPE) com o auxílio de seus colaboradores. (DPI-INPE, 2010) (CÂMARA, 2002). O GLUE usa como base a biblioteca Terralib, logo, utiliza os conceitos e objetos definidos por essa biblioteca para construir um ambiente para a análise e manipulação dos dados geográficos. As entidades utilizadas pelo sistema, cada qual com sua tabela representativa no banco de dados geográficos, são: Plano de informação (Layer): Um plano de informação possui os dados que contêm uma informação relevante sobre uma determinada região bem como a localização geográfica dessas informações, ou seja, ele define a informação e a qual ponto do mapa terrestre esta

24 24 informação está relacionada. Um plano de informação pode conter dados que são representados de diversas formas, como por exemplo: (CÂMARA, 2005) Dados vetoriais: Dados representados como vetores de pontos georeferenciados podendo formar imagens compostas por diversas linhas e/ou polígonos o EX: Ruas, rios, linhas telefônicas, estados do Brasil, etc. Dados matriciais: Dados matriciais representam imagens como fotos de satélites. Um exemplo da utilização de um plano de informação pode ser visualizado nas próximas figuras, a figura 5 demonstra a utilização do GLUE para a criação de um mapa temático utilizando como base um plano de informação previamente importado para o banco de dados: Figura 5 - Seleção de um plano de informação. Fonte: GLUE, Na figura 5 o usuário está criando um novo mapa temático para a visualização dos dados geográficos relacionados ao plano de informação chamado brazil. Todos os planos de informação que compõem um banco de dados geográfico devem ser importados por intermédio de arquivos de intercâmbio de dados, como por exemplo, os shapefiles e arquivos geotiff neste exemplo os dados foram importados a partir de um shapefile. (CÂMARA, 2005)

25 25 O resultado da criação pode ser visualizado na figura 6: Figura 6 - Mapa temático representando os dados do plano de informação selecionado. Fonte: GLUE, O objeto de visualização criado é definido como um tema pela biblioteca Terralib. Tema: Um tema é a representação gráfica dos dados que constituem um plano de informação, em outras palavras, um tema relaciona os dados geográficos ao visual definido pelo usuário para a apresentação na tela. Um tema pode possuir uma representação vetorial ou matricial, devido ao fato de que ele representa os dados de um plano de informação e o plano pode ser de qualquer um destes formatos, e possuem uma legenda que define seus atributos. (CÂMARA, 2005). A figura 7 demonstra um tema que representa os limites estaduais da Rússia, neste caso, o plano de informação contém os dados geográficos (os pontos georeferenciados que, combinados, formam os polígonos que definem os estados e as linhas que definem as divisas estaduais) e este tema associa estas informações a um objeto chamado visual que define como as informações devem ser apresentadas, neste caso, os polígonos foram definidos como

26 26 polígonos de cor vermelha e de preenchimento sólido e as linhas de contorno foram definidas como linhas sólidas pretas. Figura 7 - Tema representando os dados dos limites da Rússia. Fonte: GLUE, Visual: Este objeto define como os dados geográficos serão apresentados na tela, dentre as características que o usuário pode definir pode-se citar a cor de preenchimento de um polígono, o estilo das linhas (tracejada, sólida, pontos, etc.), o estilo de preenchimento dos contornos (sólido, transparente, etc.), a fonte de textos, entre outros atributos para representação gráfica dos dados. (CÂMARA, 2005) Outro conceito importante definido pela Terralib é que o usuário pode visualizar um grupo de temas conjuntamente, para que isto seja possível a entidade vista é utilizada. Vista: Uma vista agrega um conjunto de temas selecionados para a visualização pelo usuário. Se um tema serve para definir como os dados de um plano de informação serão visualizados, uma vista serve para definir quais dados serão visualizados e em que ordem. Vale lembrar que os dados de um plano de informação podem estar armazenados em projeções cartográficas

27 27 distintas (entidade que será explicada a seguir), portanto, uma vista define também qual projeção será utilizada para a visualização dos dados. (CÂMARA, 2005) A figura 8 demonstra a utilização de uma vista para visualizar dados provenientes de três diferentes planos de informação conjuntamente. Os temas representados são os limites regionais do México, Canadá e dos Estados Unidos. Estes mapas apresentados de conjuntamente formam a vista América do Norte. A figura 8 exemplifica a utilização de vários mapas temáticos para a visualização e análise de dados co-relacionados em uma vista. Figura 8 - Vista formada pelos temas EUA, Canadá e México. Fonte: GLUE, Projeção cartográfica: Uma projeção cartográfica é um objeto que define uma forma de representar os dados geográficos da terra (um globo definido matematicamente como uma elipse) de forma plana para que possa ser visualizada em um sistema computacional de forma a não perder a referência do ponto terrestre ao qual o dado está relacionado. (CÂMARA, 2005) Legenda: A entidade que define as características de um grupo de objetos, relacionados a um tema, como por exemplo, o visual deste tema. (CÂMARA, 2005)

28 Banco de dados geográficos Um SIG requer uma base de dados diferente das bases de dados convencionais, para que uma análise espacial possa ser executada um SIG necessita de um banco de dados geográficos. Este tipo de banco de dados é composto basicamente por dados que possuem informações descritivas em relação a um determinado ponto georeferenciado, ou seja, informações associadas a um lugar específico, bem como a localização deste lugar. (CÂMARA, 2005) Portanto, devido às peculiaridades dos dados geográficos, um banco de dados geográfico possui uma estrutura diferente. Esta estrutura pode ser visualizada com o exemplo do modelo lógico de um banco de dados criado utilizando a biblioteca para tratamento de dados geográficos Terralib que pode de ser visto na figura 9. Figura 9 - Modelo lógico de um banco de dados Terralib. Fonte: DPI-INPE, 2010.

29 29 A biblioteca é divida em módulos, dentre eles destacam-se: Kernel: Módulo central da biblioteca que dispões das principais funções de tratamento e visualização de dados geográficos (como projeções, rotinas de tratamento de dados geográficos, entre outros); Drivers: Módulo composto pelos drivers de comunicação com diversos SGBDs, este módulo contêm as rotinas de tratamento destes dados relativas a cada SGBD suportado pela biblioteca; (CÂMARA, 2005) A estrutura da Terralib pode ser visualizada na figura 10: Figura 10 - Estrutura Terralib. Fonte: CÂMARA, Em suma, pode-se dizer que um banco de dados geográficos é um banco de dados que armazena características de um determinado ponto do globo terrestre. Existem bibliotecas que encapsulam o tratamento destes dados, como as bibliotecas livres Geotools e Terralib previamente descritas.

30 Análise espacial Um SIG é uma ferramenta computacional que permite a visualização e edição de dados geográficos. Um SIG e uma base de dados geográficos são ferramentas que auxiliam na análise dos dados. Utilizando um SIG é possível resolver os problemas relacionados à análise espacial de dados geográficos, pode-se tomar como exemplos os seguintes casos reais: Em 2006, um SIG foi utilizado para rastrear a disseminação da gripe aviária na Tailândia com o intuito de auxiliar a distribuição de recursos e coordenar os esforços de cuidado médico da maneira mais eficiente; (SCIDEV, 2010) Estudiosos estão utilizando o sensoriamento remoto e um SIG para elaborar mapas de erosão do solo na província de Esfahan no Irã e no distrito de Parbhani da índia central, os objetivos do estudo é apear os padrões de drenagem de água e do tipo do solo para determinar quais áreas permitiriam restabelecer reservas subterrâneas de água, seja por água das chuvas ou pela construção de aqüíferos artificiais; (SCIDEV, 2010) Na cidade de Nova Delhi o governo utiliza um SIG para monitorar o crescimento de construções não autorizadas na cidade; (SCIDEV, 2010) A divisão de drogas e crimes da Organização das Nações Unidas (ONU) utiliza um SIG para rastrear áreas de plantio de ópio no Afeganistão,país responsável por aproximadamente 92% do suprimento ilegal do ópio no mundo ; (SCIDEV, 2010) O Ministério do Meio Ambiente (MMA) do Brasil disponibiliza dados geográficos de âmbito ambiental para análise, como por exemplo, a distribuição de assentamentos rurais na Amazônia ou a disposição de reservas indígenas no Brasil; (MMA, 2010) Percebe-se que a visualização gráfica de dados geográficos armazenados em sistemas computacionais possui possibilidades de aplicação prática em diversas áreas, dentre elas

31 31 pode-se citar a análise de dados ambientais, dados demográficos, dados geológicos,etc. (CÂMARA, 2002) Algumas operações básicas em análise espacial incluem sobreposição de imagens (como a sobreposição de dados provenientes de um banco que utiliza a biblioteca Terralib sobre dados provenientes de um serviço de mapas web), renderização simples (a visualização de dados provenientes de uma única fonte, como o Google maps que exibe apenas imagens próprias), renderização de imagens de alta resolução provenientes de fotos de satélites, entre outros. Alguns exemplos da utilização de um SIG para análise espacial são: Análise das áreas prioritárias de preservação ambiental (plano de informação obtido via serviço de mapas web do ministério do meio ambiente do Brasil) em conjunto com as principais vias rodoviárias brasileiras para determinar quais rodovias passam por áreas de preservação ambiental. As áreas destacadas do mapa exibido na figura 11 representam as áreas de preservação ambiental e as linhas em vermelho representam as rodovias brasileiras. Figura 11 - Rodovias e áreas prioritárias de preservação ambiental. Fonte: GLUE 2010.

32 32 A figura 12 demonstra a análise topológica de uma determinada região no México pela junção de um plano de informação contendo os limites regionais do México com as informações topológicas provenientes do Google. Figura 12 - Junção do mapa do México com informações topológicas. Fonte: GLUE, A figura 13 demonstra a análise da distância de determinado lote de São Gonçalo para a rodovia mais próxima.

33 33 Figura 13 - Distância de um lote até a rodovia. Fonte: GLUE, Embora existam diversas informações que podem ser analisadas e usadas como base para tomada de decisão, visualização em 2D não é a única possibilidade para análise de dados espaciais, com a análise de dados em 3D é possível obter informações úteis que não seriam obtidas pela visão em 2D, como por exemplo a análise de superfícies naturais (serras, montanhas) ou análises de áreas urbanas. (Smith, 2009) Com o passar do tempo, os SIGs, as bases de dados geográficas e os meios de obtenção de informação geográfica evoluem e, com isso, a visualização e manipulação de dados geográficos em 3D têm se tornado serviços úteis e cada vez mais presentes em softwares modernos como por exemplo o Google Earth, LandExplorer e o CityGML. (Smith, 2009) Alguns exemplos da utilização de um SIG para análise espacial em 3D são: Análise de terrenos em 3D, como por exemplo o Grand Canyon, como visto na figura 14.

34 34 Figura 14 Visualização em 3D do Grand Canyon. Fonte: Google Earth, Análise do distrito financeiro em Nova Iorque, Estados Unidos por intermédio de uma réplica em 3D como visto na figura 15. Figura 15 - Visualização em 3D da cidade de Nova Iorque. Fonte: Google Earth, 2010.

35 35 Percebe-se que, com o auxílio de SIGs cada vez mais desenvolvidos e de dados provenientes das mais diversas fontes, a análise espacial têm se desenvolvido em uma ferramenta útil para a resolução de problemas, inferências estatísticas e, em certos casos, pode-se ter um uso educacional ou de entretenimento e, portanto, é uma área importante do geoprocessamento. (SMITH, 2009)

36 36 3 INTRODUÇÃO A ARQUIVOS KML Este capítulo apresenta uma conceituação sobre os documentos KML, mostrando o que são e como são utilizados por aplicações atuais. Este capítulo está dividido da seguinte forma: A seção 3.1 descreve o que são os arquivos XML, a seção 3.2 descreve o que são os arquivos KML, a seção 3.3 mostra os objetivos dos documentos KML, a seção 3.4 apresenta as aplicações que utilizam os documentos KML e suas funcionalidades e a seção 3.5 demonstra como os documentos KML podem ser manipulados no ambiente Java atualmente. 3.1 Arquivos XML KML é um tipo de arquivo, baseado em extensible Markup Language (XML), que foi criado com o intuito de permitir a disseminação de dados geográficos e a sua visualização em SIGs como por exemplo Google Earth, My Geoposition, Dear map,ente outros (Tutorial KML, 2010). Para compreender como um arquivo KML armazena e organiza os dados que pode representar é necessário uma compreensão do padrão XML, pois o KML utiliza a estrutura de um arquivo XML. XML é uma linguagem de marcação que permite a descrição de dados de forma estruturada por intermédio da utilização de elementos aninhados (tags). (XML, 2010) Uma linguagem de marcação permite a descrição de dados estruturados em arquivos textuais, por exemplo, a descrição de pontos georeferenciados com suas respectivas coordenadas organizadas em elementos de um arquivo de texto. (Introdução XML, 2010)

37 37 A linguagem XML foi desenvolvida com o intuito de permitir a disseminação de dados, ele armazena os dados em elementos,estas definidas pela aplicação que irá utilizá-las, e com a distribuição do arquivo XML uma aplicação habilitada é capaz de receber e enviar os dados armazenados. (Tutorial XML, 2010) A figura 16 mostra como um arquivo XML é estruturado em elementos: Figura 16 - Exemplo de arquivo XML com um catálogo de CDs. Fonte: Tutorial XML, A figura 16 demonstra a estrutura de um arquivo XML que contém dados relativos a um catálogo de Compact Disks (CDs), nota-se que, segundo o tutorial XML (2010), o arquivo é organizado da seguinte forma: O item principal, é o catálogo e ele é descrito no elemento <catalog>; Um catálogo é formado por uma série de subitens, neste caso, os CDs, que são descritos pelo elemento <CD>.Estes são sub-elementos que compõem o elemento <catalog>. Isto representa a relação entre um catálogo e seus CDs, ou seja, um catálogo é composto por vários CDs, logo, o elemento <catalog> é composto de elementos <CD>;

38 38 Tal como o catálogo, o cd também tem sub-elementos que descrevem suas características, cada um deles possui um elemento correspondente, como o elemento <price> que representa o preço do cd; Os elementos que aparecem no conteúdo do elemento compõem sua descrição, por exemplo, o texto entre os elementos <price> e </price> representa o preço do cd; É assim que os dados são organizados em um arquivo XML, os elementos principais representam um metadado composto por dados representados por seus elementos, que podem ou não possuir elementos cada vez mais específicos. A partir das definições dos elementos, uma aplicação pode ser construída para ler os dados armazenados no documento, manipulálos e enviá-los de acordo com os seus objetivos. (Tutorial XML, 2010) Figura 17 - Exemplo da utilização de um arquivo XML em uma aplicação web. Fonte: GLUE, A figura 17 demonstra um trecho de um arquivo XML, trata-se de um arquivo de configuração comumente utilizado em aplicações web, o web.xml, que contêm a descrição e mapeamento das servlets de uma determinada aplicação, a estrutura em si é semelhante a do exemplo do catálogo, com um elemento principal dividido em elementos mais específicos, todos representados em elementos. A diferença não está na estrutura, mas sim na forma como os elementos são tratadas pelas aplicações. (Tutorial XML, 2010)

39 Arquivos KML Um arquivo KML, tal como um arquivo XML, é um tipo de linguagem de marcação organizada em elementos, estas pré-definidas para o tratamento de dados geográficos, que foi criada especificamente para o armazenamento e distribuição de dados geográficos para que estes possam ser manipulados por qualquer SIG capaz de interpretar um arquivo KML. (Tutorial KML, 2010) Os arquivos KML, diferentemente dos arquivos XML, tem uma estrutura pré-definida, ou seja, elementos pré definidos, com o intuito de garantir a interoperabilidade dos dados descritos neste formato para que qualquer SIG capaz de manipular um arquivo KML, seja capaz de manipular tanto os arquivos próprios quanto os arquivos gerados por outras aplicações, desde que os arquivos gerados estejam de acordo com a especificação dos arquivos KML da Open Geospatial Consortium (OGC) (Especificação KML, 2010). A figura 18 demonstra os principais elementos de um documento KML que serão utilizados no desenvolvimento deste trabalho, cada uma tem sua responsabilidade específica. Os elementos que estão dentro de retângulos indicam elementos abstratos, demonstrando o uso de orientação a objetos na estrutura desta linguagem de marcação. (Referência KML, 2010)

40 40 Figura 18 - Hierarquia dos elementos de um documento KML. Fonte: Referência KML, De acordo com a referência KML (2010), os elementos que serão manipulados pelo módulo que será desenvolvido são: Geometria (elemento Geometry): Elemento abstrato. Utiliza-se para reservar um espaço para qualquer um dos objetos derivados dele, garantindo o polimorfismo; Recurso (elemento Feature): Elemento abstrato. Usado para representar diversos recursos que podem ser incluídos no documento KML, como: o Pasta; o Documento; o Marcador; o Ente outros; Documento (elemento Document): É um contêiner onde serão armazenados os recursos e estilos do documento KML;

41 41 Marcador (elemento Placemark): É um recurso associado a uma geometria, quando essa geometria é um ponto o marcador possui um ícone para visualização e interação do usuário; Ponto (elemento Point): Define um local geográfico específico associado a uma longitude, latitude e, opcionalmente, altitude. Se este elemento estiver contido em um marcador ele determina a localização do ícone e do nome deste marcador; Estilo (elemento Style). Define o estilo de apresentação de uma geometria (semelhante a como um visual define a visualização de um tema). 3.3 Objetivos dos arquivos KML Segundo a especificação KML (2010) o padrão KML, que como já foi mostrado é semelhante a um documento XML, porém com elementos pré-definidas para o tratamento de dados geográficos, foi desenvolvido e submetido para a avaliação do OGC com o intuito de: Estabelecer uma linguagem padrão para a disseminação de dados geográficos na web e permitir a interoperabilidade ente os SIGs, tanto para navegação em 2D quanto em 3D; Permitir que fosse adotado um padrão de boas práticas de comunicação e disseminação de dados pelo uso de uma linguagem que pode ser compreendida por diversas aplicações; Garantir que as aplicações possam desenvolver novas funcionalidades com base em atualizações da linguagem de marcação mantendo a retro compatibilidade; Com a padronização de uma linguagem de marcação, a criação de dados geográficos, bem como a sua disseminação, agora pode ser feita por qualquer SIG que possa compreender a linguagem, aumentando assim a quantidade de usuários que podem criar e compartilhar seus dados por meio da aplicação de sua escolha, como por exemplo: Google Earth, Dear maps, Nasa WorldWind, My Geoposition, entre outras aplicações. (Introdução KML, 2010)

42 42 No entanto, as funcionalidades permitidas pelo uso de arquivos KML não se restringe apenas a descrição de dados geográficos, como no tutorial do KML (2010), essa linguagem de marcação permite o uso de funções mais elaboradas, seja com o propósito de entreter um usuário ou de permitir uma análise geoespacial mais detalhada, por exemplo: A criação de passeios de virtuais, em outras palavras, de animações nas quais o usuário visualiza diversos pontos-chave de um determinado mapa como se estivesse voando ou caminhando pelos locais; A utilização de balões descritivos que podem integrar conteúdo HTML para agregar diversas informações, como notícias, a um determinado ponto do mapa; Agregação de uma figura a um ponto do mapa, que pode, por exemplo, ser uma foto do local ou um gráfico de análise demográfica; Entre outros elementos que estão incluídos na especificação da linguagem; 3.4 Aplicações práticas dos arquivos KML Existem diversas aplicações na web que utilizam KML como base para construir suas ferramentas e, ou integrar seus serviços a outros exercícios existentes. As aplicações vão desde coisas como relacionar tópicos postados de blogs com pontos georeferenciados a utilização dos elementos para a criação de animações personalizadas. As figuras a seguir exemplificam diferentes formas de integrar KML a um SIG e as possíveis funcionalidades que podem ser obtidas com o uso dessa linguagem de marcação:

43 43 Figura 19 - Exemplo de placemark básico gerado no Google Earth. Fonte: Google Earth, Uma das formas de utilização do KML é a geração de pontos georeferenciados de interesse. A figura 19 demonstra uma placemark (marcador) gerada no Google Earth. Segue o documento KML que representa as informações necessárias para a geração da figura acima. Figura 20 - Exemplo de documento KML.

44 44 Fonte: Google Earth, A figura 20 mostra o documento referente ao marcador demonstrado no mapa, nota-se que a estrutura de elementos aninhados de um documento XML é mantida, no entanto, os elementos utilizados são pré-definidos para serem tratados pela aplicação que lerá o documento. Por exemplo, o elemento coordinates representa as coordenadas do ponto, isso permite que o programa que efetuar a leitura deste documento possa compreender em que local do mapa o ponto será posicionado. Figura 21 - Utilização do KML para criar animações parte um. Fonte: Dear Map, A figura 21 demonstra uma aplicação chamada Dear Map que é capaz de criar animações, usando KML com ícones personalizados, e representa um trecho de uma animação em que o carro se movimenta percorrendo um caminho pré-definido (representado por uma linha) sobre imagens de satélite do Google Maps.

45 45 Figura 22 - Utilização do KML para gera animações parte dois. Fonte: Dear Map, A figura 22 demonstra como o mesmo percurso utilizado para navegação em 2D no Google Maps pode ser usado para criar uma animação em 3D que pode ser exibida no Google Earth, na qual o carro também segue um percurso pré-definido que está armazenado no documento KML.

46 46 Figura 23 - Aplicação que relaciona notícias da CNN a pontos do mapa. Fonte: MiiBazar CBS news, A figura 23 demonstra como a utilização de balões, com referências a conteúdo HTML obtidos de fontes externas, pode ser integrada a um documento KML para a criação de um conteúdo novo do qual se pode extrair novas informações, neste caso em particular, a aplicação integrou um feed de notícias da rede internacional CBS (Columbia Broadcasting System) com o Google maps para relacionar cada notícia com um ponto específico do planeta.

47 47 Figura 24 - Aplicação que integra um blog ao Google Maps. Fonte: Adam's Blog, A figura 24 demonstra uma integração similar à utilizada com a rede CBS, no entanto, esta aplicação realiza a integração entre o Google maps e um blog pessoal.

48 48 Figura 25 - Estilização dos pontos. Fonte: Dear Map, A figura 25 demonstra que é possível customizar documentos KML para gerar diversos tipos de marcadores, como linhas circulares, pontos com a representação clássica do ícone, pontos representados por ilustrações como o avião que representa o aeroporto de Vancouver, etc.

49 49 Figura 26 - Figura que representa uma aplicação capaz de gerar e exportar arquivos KML. Fonte: MyGeoposition, A aplicação da figura 26 é capaz de gerar arquivos KML e exportá-los para que o usuário possa visualizar seus dados em outra aplicação, neste caso, o KML em questão foi exportado para o Google Earth para que o seu conteúdo possa ser visualizado, o resultado é exibido na figura 27:

50 50 Figura 27 - Resultado da exportação do documento KML. Fonte: Google Earth, Percebe-se que com a utilização de uma linguagem de marcação padrão é possível desenvolver serviços inovadores e interessantes que disponibilizam cada vez mais ferramentas e facilidades para os usuários utilizarem, seja com fins de pesquisa ou entretenimento. 3.5 KML na plataforma Java Há duas principais APIs que permitem que desenvolvedores trabalhem com documentos KML, são elas:

51 51 Libkml; (LIBKML, 2011) Java API for KML (JAK); (JAK Home, 2011) A Libkml é uma API escrita principalmente na linguagem C++ que tem por objetivo permitir que um usuário seja capaz de manipular um documento KML em seu projeto e que implementa o padrão 2.2 da linguagem KML. Esta API possui um vínculo com o Simplified Wrapper and Interface Generator (SWIG) para permitir que um desenvolvedor possa utilizar essa API em projetos desenvolvidos nas linguagens Python e Java e é utilizada, principalmente, pelo Google.(LIBKML, 2011) O SWIG é uma ferramenta gratuita de desenvolvimento cujo propósito é permitir que programas escritos em C ou C++ possam ser acessados e utilizados por linguagens de nível mais alto, como Java e Python. Esta ferramenta gera um código intermediário pelo qual a linguagem de nível mais alto acessa a linguagem de nível baixo. (SWIG, 2011) A JAK é uma API que possui classes Java que representam os elementos de um documento KML, bem como a organização dos elementos (heranças, associações, etc.) O diagrama da figura 28 demonstra a estrutura da API comparada à estrutura da especificação KML, nota-se que as classes da API estão organizadas da mesma forma que os elementos da especificação 2.2 da linguagem de marcação KML. As caixas que possuem contornos pontilhados representam elementos abstratos, elementos que não são escritos no documento KML, o elemento superior das caixas é o elemento KML, o elemento inferior é a classe que representa o elemento da API. As heranças e associações das classes representam as relações correspondentes na estrutura dos elementos.

52 52 Figura 28 - Mapeamento Java /KML. Fonte: KML-Java, Ambas as APIs programam o padrão 2.2 da especificação KML da OGC e ambas podem ser utilizadas por um programa escrito em Java, no entanto, a JAK é uma API escrita em Java enquanto que a Libkml é escrita em C++ e, portanto, necessita de outra ferramenta e de um código auxiliar para ser integrada a uma aplicação Java. Como a JAK pode ser integrada mais facilmente e gera uma quantidade menor de dependências ela será a API utilizada no desenvolvimento deste projeto.

53 53 4 MODELAGEM DA SOLUÇÂO Este capítulo aborda a modelagem do módulo e interface de manipulação propostos e está dividido da seguinte forma: A seção 4.1 mostra quais os requisitos atendidos, a seção 4.2 apresenta à estruturação do módulo que encapsulará a manipulação do documento KML, a seção 4.3 demonstra a modelagem de uma interface, que se comunica com o módulo proposto, para exemplificar como uma aplicação se comunicará com o módulo e a seção 4.4 mostra as funcionalidades a serem atendidas e a comunicação entre uma interface e o módulo desenvolvido. 4.1 Introdução O principal objetivo a ser atingido no decorrer do desenvolvimento deste trabalho é desenvolver um módulo, na linguagem Java, que viabilize: Criação de marcadores; Edição dos dados geográficos contidos no documento KML; Importação e exportação de dados geográficos no formato KML; Para exemplificar o uso do módulo uma interface que se comunique com o módulo também foi modelada, no entanto, para que esta interface e o módulo desenvolvido possam se comunicar é necessário que haja uma estruturação de ambos que viabilize seu uso por outras aplicações (como o GLUE). 4.2 Módulo KMLHandler

54 54 O principal componente desenvolvido para este trabalho é o módulo que permitirá que um SIG se comunique com a JAK com o intuito de viabilizar a manipulação de arquivos KML, por esta razão, o módulo se chama KMLHandler. O KMLHandler tem um objeto KML que contêm todos os dados que o usuário manipulará, e ele foi desenvolvido de forma independente para permitir que outras aplicações desenvolvidas na plataforma Java possam utilizá-lo para interagir com documentos KML. Para alcançar este objetivo o KMLHandler foi desenvolvido de forma independente das interfaces que o utilizarão e irá notificá-las quando alterações ocorrerem no documento KML, para isto ele foi desenvolvido seguindo o padrão de projeto conhecido como Observer. Segundo GAMMA (2000), o padrão Observer define uma dependência de um-para-muitos entre objetos na qual vários objetos dependem do estado armazenado em outro objeto.o objeto que possui o estado notifica os que dependem dele, estes por sua vez, atualizam-se para refletir o novo estado. Esta abordagem é recomendada quando um objeto deve notificar suas alterações em outros, sem conhecê-los, garantindo um acoplamento leve (GAMMA, 2000). Como o módulo KMLHandler é independente da interface que o utilizará esse padrão de projeto é o mais adequado para o seu desenvolvimento. Uma visão geral deste módulo pode ser vista no diagrama de classes demonstrado na figura 29: Figura 29 - Diagrama de classes do módulo KMLHandler.

55 55 Esta estrutura foi feita para encapsular as funcionalidades da API JAK em um único módulo desenvolvido em Java que poderá ser reaproveitado por outras aplicações. Para que o módulo seja usado por outras aplicações elas deverão implementar a classe Observer, como exemplificado pela classe Interface no diagrama da figura 29, pois é ela que possui o parâmetro necessário para trabalhar com o módulo KMLHandler. Para exemplificar a utilização do módulo foi demonstrado um observador chamado InterfaceKML, no entanto, o módulo KML poderá ser usado independentemente desta interface ou agregado a ela, esta decisão dependerá do projeto que o utilizará. (GAMMA, 2000) 4.3 Módulo InterfaceKML Para utilizar o módulo KMLHandler um usuário interagirá por intermédio de uma interface gráfica, segue um exemplo de uma interface a ser desenvolvida para exemplificar o uso do módulo KMLHandler, ela será desenvolvida de maneira semelhante aos outros componentes gráficos do GLUE para facilitar o seu reuso, sua estrutura pode ser visualizada no diagrama de classes demonstrado na figura 30: Figura 30 - Diagrama de Classes da InterfaceKML.

56 56 A estrutura da interface funcionará da seguinte forma: A Interface será o observador do KMLHandler e terá um AdapterKML para disparar eventos quando o usuário clicar na tela; Os eventos serão identificados no AdapterKML que chamarão um método correspondente do ControllerKML; O Mediator possuirá a única instância de ControllerKML, mas será inicializada pelo AdapterKML; As funções do ControllerKML chamam serviços estáticos disponibilizados na classe ServiceKML; A classe ServiceKML chama o método correspondente do KMLHandler, que por sua vez notifica o Observer para que ele se atualize. Segundo GAMMA (2000), há duas formas de o método Notify ser chamado, seguem suas formas, vantagens e desvantagens: O sujeito chama quando seu estado for alterado: o Vantagem: O observador não precisa se preocupar em relação à atualização; o Desvantagem: Várias atualizações consecutivas podem ocasionar mudanças desnecessárias no observador. O observador chama na hora certa: o Vantagem: O observador pode esperar a hora certa, evitando chamadas consecutivas devido a atualizações consecutivas; o Desvantagem: O observador pode ocasionar erros se chamar o método na hora errada. Para o desenvolvimento deste trabalho, como as interfaces são independentes do módulo, mas precisam manter-se atualizadas, a primeira opção foi escolhida para garantir que os observadores serão atualizados independentemente da forma como foram implementados. 4.4 Funcionalidades a serem desenvolvidas

57 57 As principais funcionalidades adicionadas ao KMLHandler podem ser visualizadas no diagrama de casos de uso demonstrado na figura 31: Figura 31 - Casos de uso. Estas são as funcionalidades a serem adicionadas em uma aplicação que utilize o módulo KMLHandler, deve-se destacar que, a partir da utilização da API e das adaptações necessárias, funcionalidades adicionais poderão ser desenvolvidas com base nos códigos desenvolvidos para este trabalho. Para a melhor compreensão das funcionalidades a serem adicionadas são apresentados os diagramas de sequência de cada um dos casos de uso apresentados simulando seu comportamento no GLUE (o que simulará o comportamento de outros SIGs), estes diagramas focam apenas na execução correta dos passos para melhor compreensão.

58 58 Figura 32 - Criar marcador. A figura 32 demonstra como será o processo de criação de um marcador, resumidamente: O usuário clica no ícone da Toolbar que chama a interface KML para visualizá-la; Na Interface KML o usuário seleciona a opção Criar Marcador e a ferramenta marcador será ativada; Com a ferramenta ativada, o usuário poderá clicar em um local do Canvas para posicionar o novo marcador; O módulo KMLHandler atualizará o objeto KML da aplicação, incluindo o novo marcador; O KMLHandler retorna o objeto criado para o Canvas exibir e a ferramenta marcador é desativada. Este é o processo pelo qual a aplicação passa ao criar um marcador, o usuário poderá repetir este processo, criando vários pontos no mapa que poderão ser editados posteriormente, ou seja, o usuário poderá alterar sua descrição, seu ícone, seu nome, etc.

59 59 Figura 33 - Importar KML. A figura 33 demonstra o processo de importação de marcadores a partir de um documento KML fornecido pelo usuário, resumidamente: O usuário clica no ícone da Toolbar que chama a interface KML para visualizá-la; Na Interface KML o usuário seleciona a opção Importar Marcadores; Será exibida uma janela para que o usuário indique o arquivo a ser lido; O usuário seleciona um arquivo que será repassado para o módulo KMLHandler para ser lido; O KMLHandler atualiza o objeto KML da aplicação; A Interface KML solicitará a exibição do objeto modificado. Uma vez que os objetos tenham sido importados, eles podem ser manipulados e depois exportados para um novo arquivo KML para uso posterior. Este processo atualizará o objeto KML da aplicação toda vez que for executado, com isso, o usuário poderá importar quantos documentos desejar.

60 60 Figura 34 - Exportar KML. A figura 34 demonstra o processo de exportação dos marcadores existentes para um documento KML, resumidamente: O usuário clica no ícone da Toolbar que chama a interface KML para visualizá-la; Na Interface KML o usuário seleciona a opção Exportar Marcadores; O usuário seleciona o diretório para salvar o arquivo KML; O módulo KMLHandler será chamado para criar um documento KML a partir do objeto KML existente na aplicação; O novo documento será salvo no local especificado pelo usuário. O GLUE se encarregará de manter o controle dos marcadores existentes na aplicação, quando o usuário optar por exportar estes dados para um arquivo KML o módulo KMLHandler se encarregará de traduzir os dados em um arquivo KML e salvará o novo documento para o disco. Esta função permite que o usuário possa fazer cópias de backup, compartilhar seus dados na web de forma que qualquer aplicação que trabalhe com documentos KML possa ser utilizada para a manipulação destes dados para outros fins.

61 61 Figura 35 - Editar o KML da aplicação. A figura 35 demonstra o processo de edição dos marcadores, este processo permite que o usuário modifique o objeto KML da aplicação de modo a visualizar os marcadores de uma maneira diferente, ou de editar sua descrição, alterar sua posição, etc. Resumidamente: O usuário clica no ícone da Toolbar que chama a interface KML para visualizá-la; Na Interface KML o usuário seleciona a opção Editar Marcadores; Na Interface KML, o usuário selecionará o marcador a ser atualizado; Na Interface KML, o usuário efetua as alterações desejadas; A Interface KML solicita ao KMLHandler que efetue as alterações; O KMLHandler atualiza o objeto KML da aplicação; A Interface KML solicita a exibição do objeto modificado.

62 62 5 DESENVOLVIMENTO DA SOLUÇÃO PROPOSTA Este capítulo aborda o desenvolvimento do módulo proposto demonstrando trechos do código que o compõem, qual a função de cada um deles e a qual requisito estão relacionados. Este capítulo está dividido da seguinte forma: A seção 5.1 descreve como o KMLHandler aplica o padrão Observer, a seção 5.2 mostra as funções que permitem a importação de dados contidos em documentos KML para o ambiente Java, bem como a exportação dos dados contidos em uma aplicação para um documento KML, a seção 5.3 mostra as funções que permitem que uma aplicação recupere os dados importantes de um documento para e a seção 5.4 mostra as funções que permitem que uma aplicação manipule os dados e atualize o documento KML. 5.1 Aplicação do padrão Observer no KMLHandler Conforme especificado nos capítulos anteriores o KMLHandler foi desenvolvido na linguagem Java e segue o padrão de projeto observador, a implementação das interfaces segue os exemplos descritos por GAMMA (2000) e pode-se visualizá-las na figura 36: Figura 36 - Interfaces do KMLHandler.

63 63 Estas são as interfaces previstas na modelagem segundo o padrão observador, mas adaptadas para o serviço a ser desenvolvido. Nota-se que o método update da interface observer foi adaptado para o problema a ser resolvido pelo KMLHandler, ou seja, fornecer o objeto KML atualizado depois de quaisquer mudanças, além disto, o método update aplica o conceito da sobrecarga de funções, pois uma aplicação pode necessitar de todo o documento KML para se atualizar, no entanto, há a possibilidade de que algumas aplicações necessitem de menos informações, logo, há varias implementações do método update no KMLHandler que são semelhantes à demonstrada pela figura acima. Nota-se que, embora a plataforma Java forneça uma estrutura preparada para atender o padrão observador, no entanto, optou-se por desenvolver interfaces independentes, pois, segundo FREEMAN (2007), há limitações na forma como a classe Java.util.Observable foi implementada. Destaca-se que Observable é uma classe, logo, se um usuário for utilizá-la ele precisará fazer com que seu observador herde as características desta classe, o que limitaria o reuso do módulo KMLHandler. 5.2 Importar e exportar dados em formato KML Para que um usuário seja capaz de recuperar os dados de um arquivo KML e usar em sua aplicação, ou transferir dados de uma aplicação para um arquivo KML e salvá-lo o KMLHandler fornece métodos que sejam capazes de efetuar essas funções. A API JAK já fornece diversos métodos que realizam estas funções, bastará escolher qual atende aos requisitos do KMLHandler. Os métodos finais são demonstrados na figura 37:

64 64 Figura 37 - Métodos de leitura e escrita de arquivos KML. O método Marshal é o responsável por escrever os dados contidos em um objeto Java que represente um documento KML, no caso do KMLHandler este objeto se chama Doc, embora a API proporcione outros meios de salvar os dados, como por exemplo passar estes dados para outro objeto, o objetivo deste método é atender ao requisito de salvar os dados de uma aplicação em um documento KML, portanto, essa foi a opção escolhida. O método Unmarshal é o responsável por popular objetos Java a partir dos dados contidos em um documento KML, novamente, a API JAK proporciona várias maneiras para realizar esta função, como por exemplo validar um documento KML impedindo que documentos fora do padrão OGC sejam lidos, no entanto, o KMLHandler precisará manipular dados provenientes de diversas aplicações diferentes, sendo assim, o documento KML estruturado de maneiras diferentes. Por esta razão a opção de não validar foi escolhida e os métodos do KMLHandler foram desenvolvidos para estar de acordo com estas estruturas, nota-se que, se um documento estiver fora da especificação 2.2 do KML (Um documento mais antigo por exemplo) este módulo não será capaz de compreendê-lo. 5.3 Recuperação de recursos e geometrias de um arquivo KML

65 65 A próxima funcionalidade adicionada é a que permite que uma aplicação recupere listas de objetos que ela utiliza, estes são os métodos que serão utilizados para atualizar os observadores após as modificações no sujeito. Os objetos que podem ser manipulados incluem marcadores, links de rede, sobreposição de imagens, entre outros objetos que representam classes concretas da classe abstrata Feature. Os métodos aplicam o princípio do polimorfismo, ou seja, como eles são orientados as classes abstratas apenas pequenas modificação são feitas para adaptar cada método de recuperação ou edição do módulo para um objeto concreto, seguem alguns exemplos da implementação destes serviços: Figura 38 - Trecho do método responsável pela recuperação de uma lista de marcadores. A figura 38 contém um trecho do método responsável por recuperar uma lista de marcadores. Como pôde ser visualizado na figura 28, o objeto placemark, que representa pelo o elemento placemark da especificação do KML, é uma generalização da classe abstrata Feature, sendo assim, o método procura por features que estejam contidas dentro uma Feature raiz. Além de marcadores, documentos e pastas também são concretizações da classe Feature, logo, é necessário que o método verifique se a raiz recebida não é um documento ou pasta, se nos casos positivos, o método percorre o documento ou pasta recebida (o trecho demonstra a verificação em uma Feature do tipo Document) procurando por objetos do tipo placemark, ou seja, marcadores e adicionando eles a uma lista que será retornada para atualizar os observadores. Nota-se que, com a aplicação do polimorfismo, pode-se adaptar este mesmo método para retornar qualquer classe concreta de Feature, por exemplo:

66 66 Figura 39 - Trecho do método responsável pela recuperação de uma lista de imagens sobrepostas. A figura 39 demonstra o código para a recuperação de uma lista de imagens sobrepostas, percebe-se que poucas alterações são necessárias para fazer com que a implementação do método que recupera marcadores possa recuperar imagens sobrepostas. Imagens sobrepostas, representadas pelo objeto PhotoOverlay, também são concretizações de Feature, logo, a mesma lógica pode ser aplicada, com a diferença de que este método procura por instâncias de PhotoOverlay ao invés de placemark. Em suma, a mesma lógica pode ser aplicada para todas as concretizações de Feature, o que permite que observadores possam ser atualizados com qualquer um destes objetos: Marcadores (Placemark); Imagens Sobrepostas (PhotoOverlay); Link de rede (NetworkLink); Telas sobrepostas (ScreenOverlay); Sobreposição de solo (GroundOverlay); Animação de passeios (Tour); Documentos (Document); Pasta (Folder); Embora estas opções atendam a parte dos possíveis usos das aplicações pode haver casos em que uma aplicação utilize o KML apenas para armazenar dados geográficos, como pontos, linhas e polígonos, para estes casos foram desenvolvidos serviços que recuperam apenas estes dados, seguem alguns exemplos:

67 67 Figura 40 - Método responsável pela recuperação de uma lista de pontos. A figura 40 demonstra o método responsável pela recuperação de uma lista de pontos. Pontos são representados pelo objeto Point, que são uma generalização da classe abstrata Geometry, o polimorfismo pôde ser aplicado de forma semelhante à utilizada para a recuperação de concretizações da classe Feature com algumas mudanças para a estrutura das geometrias. Uma geometria é um atributo de um marcador, portanto, para recuperar as geometrias contidas em um documento KML é necessário que se tenha uma lista com todos os marcadores, para isso, o objeto Placemarks é populado com uma lista de marcadores obtida por intermédio do método getplacemarks, demonstrado na figura 38, e a partir deste objeto, todos os marcadores são verificados para saber se possuem uma geometria e se essa geometria é um ponto ( se é uma instância da classe Point), se a geometria for um ponto ela é adicionada a uma lista que será retornada para atualizar os observadores. Pode-se recuperar uma lista de uma geometria diferente fazendo pequenas alterações neste método, graças ao polimorfismo, segue um exemplo da adaptação para a recuperação de polígonos: Figura 41 - Método responsável pela recuperação de uma lista de polígonos.

68 68 A figura 41 demonstra o código para a recuperação de uma lista de polígonos, percebe-se que poucas alterações são necessárias, neste caso, ainda se precisa de uma lista de marcadores que será percorrida em busca de geometrias, a única diferença é que agora as geometrias devem ser do tipo polígono (instâncias da classe Polygon). De forma semelhante à recuperação de concretizações da classe Feature, esta lógica pode ser aplicada para atualizar observadores com qualquer generalização da classe Geometry, representados pelos seguintes objetos: Ponto (Point); Linha (LineString); Círculo ( LinearRing); Polígono (Polygon); Multi-Geometria (MultiGeometry); Modelo (Model); 5.4 Manipulação de recursos e geometrias no ambiente Java Os serviços apresentados até agora permitem que uma aplicação possa receber os dados geográficos contidos em um documento KML de forma fácil de trabalhar pois os objetos recebidos são objetos que possuem os atributos comuns aos elementos KML e alguns métodos de manipulação (como métodos para adicionar um novo elemento filho), no entanto, para cumprir os objetivos propostos deste trabalho o KMLHandler reflete as modificações que o usuário efetuar em um objeto para o documento KML. Os métodos a seguir demonstram como o usuário poderá criar, apagar e alterar os objetos recuperados de um arquivo KML.

69 69 Figura 42 Método responsável por atualizar o KML ao receber um marcador. A figura 42 demonstra o método responsável por receber um marcador e usá-lo para atualizar o documento KML. A lógica do método é a seguinte: Procurar o marcador recebido no documento para ver se ele já existe: o Se não existir: Ele é adicionado à lista de recursos do documento; o Se existir: O marcador que está no documento recebe os dados do novo; Se a atualização no documento KML for efetuada com sucesso o método notifyobservers() é chamado para atualizar os observadores. O método updateplacemark presta um serviço útil para aplicações que necessitem efetuar atualizações no documento KML passando apenas um recurso, neste caso um marcador, no entanto, uma forma mais prática e rápida seria se a aplicação devolvesse uma lista de marcadores (semelhantemente ao módulo KMLHandler que envia uma lista para a aplicação), portanto, outro método foi desenvolvido com o intuito de atualizar o documento KML a partir de uma lista de marcadores.

70 70 Figura 43 - Método responsável por atualizar o KML ao receber uma lista de marcadores parte 1. A figura 43 demonstra um trecho do método responsável por receber uma lista de marcadores e usá-la para o documento KML. A lógica deste trecho é a seguinte: Percorre a lista recebida e compara o elemento atual com a lista do documento o Se o marcador atual não existir ele é adicionado à lista de recursos do documento; o Se o marcador atual existir ele recebe os dados atualizados; Se a atualização no documento KML for efetuada com sucesso o método notifyobservers() é chamado para atualizar os observadores. O método updateplacemkarks se comporta semelhante ao updateplacemkark, no entanto, este método atualiza todos os marcadores contidos em uma lista, fazendo verificações semelhantes ao método que atualiza apenas um marcador. Havia a opção de que o updateplacemarks() chamar o updateplacemark() para atualizar cada marcador, no entanto, o método updateplacemark() precisa atualizar os observadores ao final de sua execução, pois ele pode ser chamado por aplicações que utilizem o KMLHandler, logo, com o intuito de evitar processamento desnecessário, o updateplacemarks() também possui uma lógica d atualização dos marcadores. Além de criar e modificar marcadores, o usuário de uma aplicação pode remover marcadores e para isso há uma lógica de remoção na segunda parte do método updateplacemarks, como pode ser visto na figura 44:

71 71 Figura 44 - Método responsável por atualizar o KML ao receber uma lista de marcadores parte 2. Na segunda parte do método updateplacemarks() a lógica é a seguinte: Percorre a lista do documento KML e compara o elemento antigo com a lista recebida o Se o marcador antigo não existir na lista recebida, ele é removido da lista de recursos do documento; Se a atualização no documento KML for efetuada com sucesso o método notifyobservers() é chamado para atualizar os observadores. De forma semelhante aos métodos de recuperação de dados, essa lógica que foi aplicada para os marcadores pode também ser aplicada para todos os objetos que são concretizações da classe Feature, um exemplo é o objeto link de rede (Network Link).

72 72 Figura 45 - Método responsável por atualizar o KML ao receber um link de rede. A figura 45 demonstra o método responsável por receber um link de rede e usá-lo para atualizar o documento KML, percebe-se que as principais diferenças entre este método e o método demonstrado na figura 42 é o tipo de objeto tratado, neste caso, trata-se de um NetworkLink. Semelhantemente, para atualizar o documento KML recebendo uma lista de links de rede funciona de forma semelhante a utilizar uma lista de marcadores, como pode ser visto na figura 46. Figura 46 - Método responsável por atualizar o KML ao receber uma lista de links de rede.

73 73 A diferença, mais uma vez, é apenas o tipo de objeto tratado. Com estas funções o módulo KMLHandler encapsula uma forma de criar, remover e atualizar quaisquer objetos que sejam concretizações da classe Feature. Para atender as aplicações que utilizarem o KMLHandler para manipularem objetos geográficos serviços de atualização semelhantes aos que atualizam recursos do documento KML foram desenvolvidos, seguem alguns exemplos: Figura 47 - Método responsável por atualizar o KML ao receber um ponto. A figura 47 demonstra o método responsável por receber um ponto e usá-lo para atualizar o documento KML. A lógica do método é a seguinte: Procurar o ponto recebido no documento para ver se ele já existe: o Se não existir: Um novo marcador é criado; O novo ponto é adicionado ao marcador; O novo marcador é adicionado à lista de recursos do documento; o Se existir: O ponto que está no documento recebe os dados do novo; Se a atualização no documento KML for efetuada com sucesso o método notifyobservers() é chamado para atualizar os observadores.

74 74 Semelhantemente ao método demonstrado na figura 42, este método proporciona um serviço útil para aplicações que necessitem atualizar um documento KML passando apenas uma geometria, neste caso, um ponto. Outro método foi desenvolvido para as que as aplicações possam atualizar o documento passando uma lista de pontos: Figura 48 - Método responsável por atualizar o KML ao receber uma lista de pontos parte 1. A figura 48 demonstra um trecho do método responsável por receber uma lista de pontos e usá-la para atualizar o documento KML. A lógica deste trecho é a seguinte: Percorre a lista recebida e compara o elemento atual com a lista do documento o Se o ponto atual não existir: Um novo marcador é criado; O novo ponto é adicionado ao marcador; O novo marcador é adicionado à lista de recursos do documento; o Se o ponto atual existir ele recebe os dados atualizados; Se a atualização no documento KML for efetuada com sucesso o método notifyobservers() é chamado para atualizar os observadores. Mais uma vez percebe-se graças à estrutura do KML é possível adaptar as lógicas desenvolvidas para novos serviços. De maneira semelhante ao método de atualização de marcadores este método também é capaz de criar pontos novos e atualizar pontos existentes, a principal diferença é que como uma geometria precisa ser adicionada a um marcador para

75 75 cada ponto criado será criado um novo marcador para armazená-lo. Há também a lógica de remoção de pontos demonstrada na figura 49: Figura 49 - Método responsável por atualizar o KML ao receber uma lista de pontos parte 2. Na segunda parte do método updatepoints() a lógica é a seguinte: Percorre a lista do documento KML e compara o elemento antigo com a lista recebida o Se o ponto antigo não existir na lista recebida, ele é removido do marcador; Se a atualização no documento KML for efetuada com sucesso o método notifyobservers() é chamado para atualizar os observadores. Com estes serviços uma aplicação pode criar, editar e remover pontos e deixar o KMLHandler refletir estas alterações em um documento KML e, depois de concluir as atualizações, notificar todos os observadores que o documento foi alterado. Mais uma vez, devido à estrutura do KML esta mesma lógica se aplica a qualquer geometria, como por exemplo linhas.

76 76 Figura 50 - Método responsável por atualizar o KML ao receber uma linha. A figura 50 demonstra o método responsável por receber uma linha e usá-la para atualizar o documento KML. Semelhantemente aos métodos que tratam dos recursos percebe-se que a diferença é o tipo de objeto tratado, neste caso é o LineString. Semelhantemente aos pontos há um método responsável por atualizar o documento recebendo uma lista de linhas, como pode ser visto na figura 51: Figura 51 - Método responsável por atualizar o KML ao receber uma lista de linhas. Novamente, a diferença entre este método e o que atualiza usando uma lista de pontos é o tipo de geometria utilizada. Os serviços demonstrados foram desenvolvidos para todos os objetos aplicáveis permitindo que uma aplicação possa utilizar o KMLHandler para:

77 77 Importar dados geográficos de um documento KML; Criar quaisquer recursos ou geometrias; Editar todos os atributos de recursos, geometrias e de outros objetos associados a eles; Remover recursos ou geometrias; Exportar os dados para um documento KML. No total, foram desenvolvidos quarenta e dois métodos que proporcionam os serviços listados para todos os recursos e geometrias de um documento KML. Infelizmente, devido à complexidade do módulo KMLHandler, limitações de tempo e a um período de reestruturação do GLUE a InterfaceKML, que seria desenvolvida para exemplificar o uso do módulo por uma aplicação independente, e que seria adicionada ao GLUE, não pôde ser desenvolvida para este trabalho.

78 78 6 RESULTADOS OBTIDOS Este capítulo aborda os resultados obtidos com o módulo desenvolvido, demonstrando como uma aplicação que utilize o módulo pode manipular os dados contidos em documento KML. Este capítulo esta dividido da seguinte forma: A seção 6.1 descreve como os resultados serão demonstrados, a seção 6.2 apresenta os resultados relacionados à manipulação de recursos dos documentos KML e a seção 6.3 apresenta os resultados relacionados à manipulação das geometrias dos documentos KML. 6.1 Introdução Para a demonstração, primeiramente o código de manipulação do documento KML, que foi feito na linguagem Java, demonstra como uma aplicação utiliza o KMLHandler e, em seguida, imagens demonstram os resultados obtidos. O foco dos resultados são os objetivos estabelecidos no trabalho, como criação de marcadores, edição dos dados geográficos do documento e remoção de dados do documento, estas funções são executadas em listas e objetos obtidos utilizando o KMLHandler. 6.1 Criação e manipulação de recursos O primeiro exemplo demonstra uma das funções mais comuns de arquivos KML, a criação de marcadores.

79 79 Figura 52 - Código da criação de um marcador. A figura 52 demonstra o código usado para criar um marcador. Ela simula uma aplicação que permite a criação do objeto e o ajuste dos parâmetros principais do marcador como nome, identificação, descrição, etc. Uma aplicação só precisa conhecer o objeto marcador, para atualizar o documento KML ele só precisa chamar o método de atualização do KMLHandler. O resultado da modificação do documento é exibido na figura 53: Figura 53 - Criação de marcador. Fonte: Google Earth, O próximo exemplo demonstra como uma aplicação cliente deverá interagir com o módulo para efetuar mudanças em um marcador.

80 80 Figura 54 - Código da modificação de marcador. O código demonstrado na figura 54 simula uma aplicação que já tenha os marcadores e o usuário deseja alterar as coordenadas, nome e descrição do marcador. As coordenadas podem ser obtidas pela posição do apontador do mouse em um mapa e os demais valores podem ser editados por intermédio de uma interface gráfica. Após efetuar as alterações, a aplicação utiliza o método de atualização de marcador do KMLHandler. A figura 55 mostra o marcador original: Figura 55 - Marcador antes da modificação. Fonte: Google Earth, A figura 56 mostra o resultado depois de o KMLHandler atualizar o documento:

81 81 Figura 56 - Marcador depois da modificação. Fonte: Google Earth, O próximo exemplo demonstra como um usuário pode modificar vários marcadores de uma só vez: Figura 57 - Código da modificação de diversos marcadores. O código demonstrado na figura 57 simula um usuário que efetua modificações em quatro marcadores diferentes e depois solicita ao KMLHandler que reflita estas alterações no documento KML utilizando o método que atualiza vários marcadores de uma só vez. As modificações são: O estilo do primeiro polígono foi alterado para um estilo customizado;

AULA 1 Iniciando o uso do TerraView

AULA 1 Iniciando o uso do TerraView 1.1 AULA 1 Iniciando o uso do TerraView Essa aula apresenta a interface principal do TerraView e sua utilização básica. Todos os arquivos de dados mencionados nesse documento são disponibilizados junto

Leia mais

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com III Jornada Latinoamericana e do Caribe do gvsig Artigo: Integração do software i3geo com o gvsig Autor: Edmar Moretti Resumo: O i3geo é um software para a criação de mapas interativos para internet qu

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

OFICINA USO DO I3GEO. Levindo Cardoso Medeiros. levindocm@gmail.com

OFICINA USO DO I3GEO. Levindo Cardoso Medeiros. levindocm@gmail.com OFICINA USO DO I3GEO Levindo Cardoso Medeiros levindocm@gmail.com ESTRUTURA INTRODUÇÃO UTILIZANDO O I3GEO Aprendendo a navegar pelo I3Geo Propriedades do mapa ADICIONANDO E MANIPULANDO CAMADAS Adicionando

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

TerraView. O TerraView está estruturado da seguinte forma: - Modelo de dados

TerraView. O TerraView está estruturado da seguinte forma: - Modelo de dados TerraView O TerraView é um aplicativo desenvolvido pelo DPI/INPE e construído sobre a biblioteca de geoprocessamento TerraLib, tendo como principais objetivos: - Apresentar à comunidade um fácil visualizador

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Centro de Trabalho Indigenista CTI

Centro de Trabalho Indigenista CTI Centro de Trabalho Indigenista CTI Termo de Referência para Contratação de Consultoria Técnica Junho de 2015 Projeto Proteção Etnoambiental de Povos Indígenas Isolados e de Recente Contato na Amazônia

Leia mais

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

Leia mais

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente Conceito ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente O Sagres Diário é uma ferramenta que disponibiliza rotinas que facilitam a comunicação entre a comunidade Docente e Discente de uma instituição,

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

Leia mais

BANCO DE DADOS GEOGRÁFICOS

BANCO DE DADOS GEOGRÁFICOS BANCO DE DADOS GEOGRÁFICOS E WEBMAPPING -KML(KEYHOLE MARKUP LANGUAGE) Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza INTRODUÇÃO KML é um formato de arquivo usado para exibir dados geográficos

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

AULA 2 Planos, Vistas e Temas

AULA 2 Planos, Vistas e Temas 2.1 AULA 2 Planos, Vistas e Temas Essa aula apresenta os conceitos de Plano de Informação, Vista e Tema e suas manipulações no TerraView. Para isso será usado o banco de dados criado na AULA 1. Abra o

Leia mais

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. , ()! $ Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. Uma estratégia muito utilizada para organizar visualmente informações numéricas

Leia mais

UNIVERSIDADE FEDERAL DA BAHIA - UFBA

UNIVERSIDADE FEDERAL DA BAHIA - UFBA UNIVERSIDADE FEDERAL DA BAHIA - UFBA Instituto de Ciências Ambientais e Desenvolvimento Sustentável Prof. Pablo Santos 4 a Aula SISTEMA DE INFORMAÇÃO GEOGRÁFICA - SIG Introdução Definições Necessárias

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

Leia mais

AULA 6 - Operações Espaciais

AULA 6 - Operações Espaciais 6.1 AULA 6 - Operações Espaciais Essa aula descreve as operações espaciais disponíveis no TerraView. Antes de iniciar sua descrição é necessário importar alguns dados que serão usados nos exemplos. Exercício:

Leia mais

EXPLORANDO TÉCNICAS E RECURSOS DO GERENCIADOR DE DADOS ABERTOS CKAN. TuaneFaria USP tuanefaria@yahoo.com.br

EXPLORANDO TÉCNICAS E RECURSOS DO GERENCIADOR DE DADOS ABERTOS CKAN. TuaneFaria USP tuanefaria@yahoo.com.br EXPLORANDO TÉCNICAS E RECURSOS DO GERENCIADOR DE DADOS ABERTOS CKAN Prof. Dr. José Eduardo Santarem Segundo USP santarem@usp.br TuaneFaria USP tuanefaria@yahoo.com.br Introdução Disponibilizar Dados Disponibilizar

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

SISTEMA GERENCIADOR DE BANCO DE DADOS

SISTEMA GERENCIADOR DE BANCO DE DADOS BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SISTEMA GERENCIADOR

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROGRAMA DE PÓS GRADUAÇÃO EM FORMAÇÃO CIENTÍFICA, EDUCACIONAL E TECNOLÓGICA PPGFCET

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROGRAMA DE PÓS GRADUAÇÃO EM FORMAÇÃO CIENTÍFICA, EDUCACIONAL E TECNOLÓGICA PPGFCET UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROGRAMA DE PÓS GRADUAÇÃO EM FORMAÇÃO CIENTÍFICA, EDUCACIONAL E TECNOLÓGICA PPGFCET KARLA PATRÍCIA GOMES COSTA ARTICULAÇÃO DE TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

Leia mais

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! TUTORIAL DO ALUNO Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! O Moodle é a plataforma de ensino a distância utilizada pela Uniapae sendo a unidade de ensino para rápida capacitação

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

Relações mais harmoniosas de convívio com a natureza; O mundo como um modelo real que necessita de abstrações para sua descrição; Reconhecimento de

Relações mais harmoniosas de convívio com a natureza; O mundo como um modelo real que necessita de abstrações para sua descrição; Reconhecimento de Relações mais harmoniosas de convívio com a natureza; O mundo como um modelo real que necessita de abstrações para sua descrição; Reconhecimento de padrões espaciais; Controle e ordenação do espaço. Técnicas

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

INSTRUMENTO NORMATIVO 004 IN004

INSTRUMENTO NORMATIVO 004 IN004 1. Objetivo Definir um conjunto de critérios e procedimentos para o uso do Portal Eletrônico de Turismo da Região disponibilizado pela Mauatur na Internet. Aplica-se a todos os associados, empregados,

Leia mais

AULA 1 Iniciando o Uso do TerraView

AULA 1 Iniciando o Uso do TerraView 1.1 AULA 1 Iniciando o Uso do TerraView Essa aula apresenta o software TerraView apresentando sua interface e sua utilização básica. Todos os arquivos de dados mencionados neste documento bem como o executável

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo: Manual da Turma Virtual: MATERIAIS Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo: MENU TURMA VIRTUAL MENU MATERIAIS CONTEÚDO/PÁGINA WEB Esta operação possibilita que

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

SOFTWARES DE GEOPROCESSAMENTO

SOFTWARES DE GEOPROCESSAMENTO SOFTWARES DE GEOPROCESSAMENTO Ferramentas Proprietário para SIG É um conjunto de aplicativos computacionais de Sistemas de Informações Geográficas (SIGs) desenvolvido pela empresa norte americana Esri

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

Leia mais

Conceitos Iniciais MARCEL SANTOS SILVA

Conceitos Iniciais MARCEL SANTOS SILVA Conceitos Iniciais MARCEL SANTOS SILVA DPI - INPE Criada em 1984, a Divisão de Processamento de Imagens (DPI) faz parte da Coordenação Geral de Observação da Terra/OBT do Instituto Nacional de Pesquisas

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

AULA 17 KML Manager. Nessa aula serão apresentadas as funcionalidades do KML Manager.

AULA 17 KML Manager. Nessa aula serão apresentadas as funcionalidades do KML Manager. 17.1 AULA 17 KML Manager Nessa aula serão apresentadas as funcionalidades do KML Manager. KML (Keyhole Markup Language) é um formato de arquivo e uma gramática XML que serve para modelar e armazenar características

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel Tabela e Gráficos Dinâmicos Como estruturar! Para que serve a Tabela e o Gráfico Dinâmico?! Como criar uma Tabela Dinâmica?! Como criar um Gráfico Dinâmico?! Como podemos atualizar dos dados da Tabela

Leia mais

UML Aspectos de projetos em Diagramas de classes

UML Aspectos de projetos em Diagramas de classes UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

Planejando o aplicativo

Planejando o aplicativo Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por

Leia mais

CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO

CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO Editar dados em vários formatos e armazenar estas informações em diferentes sistemas é provavelmente uma das atividades mais comuns para os profissionais

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Critérios para certificação de Sites SciELO: critérios, política e procedimentos para a classificação e certificação dos sites da Rede SciELO

Critérios para certificação de Sites SciELO: critérios, política e procedimentos para a classificação e certificação dos sites da Rede SciELO Critérios para certificação de Sites SciELO: critérios, política e procedimentos para a classificação e certificação dos sites da Rede SciELO Versão Março 2008 1 Introdução Este documento tem por objetivo

Leia mais

Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc.

Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc. Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc. SUMÁRIO Apresentação da ementa Introdução Conceitos Básicos de Geoinformação Arquitetura de SIGs Referências Bibliográficas APRESENTAÇÃO

Leia mais

AULA 2 Planos, Vistas e Temas

AULA 2 Planos, Vistas e Temas 2.1 AULA 2 Planos, Vistas e Temas Essa aula apresenta os conceitos de Plano de Informação, Vista e Tema e suas manipulações no TerraView. Para isso será usado o banco de dados criado na AULA 1. Abra o

Leia mais

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN José Agostinho Petry Filho 1 ; Rodrigo de Moraes 2 ; Silvio Regis da Silva Junior 3 ; Yuri Jean Fabris 4 ; Fernando Augusto

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Importação de arquivos Raster e Vetorial no Terraview

Importação de arquivos Raster e Vetorial no Terraview MINISTÉRIO DA EDUCAÇÃO MEC Secretaria de Educação Superior - SESu Departamento de Modernização e Programas da Educação Superior DEPEM MINISTÉRIO DAS CIDADES Secretaria Executiva Diretoria de Desenvolvimento

Leia mais

Cenário atual de uso e das ferramentas de software livre em Geoprocessamento

Cenário atual de uso e das ferramentas de software livre em Geoprocessamento Cenário atual de uso e das ferramentas de software livre em Geoprocessamento Tiago Eugenio de Melo tiago@comunidadesol.org 1 Sumário Conceitos GIS e Software Livre Ferramentas: Jump Qgis Thuban MapServer

Leia mais

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental Ajuda ao SciEn-Produção 1 Este texto de ajuda contém três partes: a parte 1 indica em linhas gerais o que deve ser esclarecido em cada uma das seções da estrutura de um artigo cientifico relatando uma

Leia mais

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

Aprenda as melhores práticas para construir um completo sistema de teste automatizado Aprenda as melhores práticas para construir um completo sistema de teste automatizado Renan Azevedo Engenheiro de Produto de Teste e Medição -Américas Aprenda as melhores práticas para construir um completo

Leia mais

ebook Guia prático para download das imagens gratuitas do INPE

ebook Guia prático para download das imagens gratuitas do INPE ebook Guia prático para download das imagens gratuitas do INPE Guia prático para download das imagens gratuitas do INPE Este guia vai ajudar você a como fazer download, e a visualizar as imagens de satélite

Leia mais

VERSÃO 1 PRELIMINAR - 2010 MÓDULO 3 - PRESENCIAL

VERSÃO 1 PRELIMINAR - 2010 MÓDULO 3 - PRESENCIAL MÓDULO 3 - PRESENCIAL CmapTools É um software para autoria de Mapas Conceituais desenvolvido pelo Institute for Human Machine Cognition da University of West Florida1, sob a supervisão do Dr. Alberto J.

Leia mais

Portal do Projeto Tempo de Ser

Portal do Projeto Tempo de Ser Sumário Portal do Projeto Tempo de Ser O que é um Wiki?...2 Documentos...2 Localizando documentos...3 Links...3 Criando um Documento...4 Criando um link...4 Editando um Documento...5 Sintaxe Básica...5

Leia mais

OpenJUMP. Pontos fracos do OpenJUMP

OpenJUMP. Pontos fracos do OpenJUMP OpenJUMP No início foi chamado apenas de JUMP (JAVA Unified Mapping Platform), e se tornou popular no mundo livre de SIG(Sistema de informação Geográfica), desenhado por Vivid Solutions. Atualmente é desenvolvido

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0 paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0 agosto de 2007 As informações contidas neste documento, incluíndo quaisquer URLs e outras possíveis referências a

Leia mais

INTRODUÇÃO. Diferente de Bando de Dados

INTRODUÇÃO. Diferente de Bando de Dados INTRODUÇÃO Diferente de Bando de Dados 1 INTRODUÇÃO DADOS São fatos conhecidos que podem ser registrados e que possuem significado. Ex: venda de gasolina gera alguns dados: data da compra, preço, qtd.

Leia mais

Geoprocessamento com Software Livre. Anderson Maciel Lima de Medeiros Consultor em Geotecnologias

Geoprocessamento com Software Livre. Anderson Maciel Lima de Medeiros Consultor em Geotecnologias Geoprocessamento com Software Livre Anderson Maciel Lima de Medeiros Consultor em Geotecnologias SUMÁRIO O que é Software Livre? A GLP GNU Geoprocessamento Algumas Geotecnologias Geotecnologias Livres

Leia mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor de sites SoftPixel GUIA RÁPIDO - 1 - GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

CAPÍTULO 4. AG8 Informática

CAPÍTULO 4. AG8 Informática 2ª PARTE CAPÍTULO 4 Este capítulo têm como objetivo: 1. Tratar das etapas do projeto de um Website 2. Quais os profissionais envolvidos 3. Administração do site 4. Dicas para não cometer erros graves na

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

4 Um Exemplo de Implementação

4 Um Exemplo de Implementação 4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

Leia mais

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF TUTORIAL DE DIGITALIZAÇÃO DIRIGIDO AO USO DO PROCESSO ELETRÔNICO Adaptado do tutorial elaborado pelo colega MAICON FALCÃO, operador de computador da subseção judiciária de Rio Grande. Introdução Este tutorial

Leia mais

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

WEBGIS Sistema Informativo Territorial

WEBGIS Sistema Informativo Territorial PREFEITURA MUNICIPAL DE PONTA GROSSA WEBGIS Sistema Informativo Territorial MANUAL DE UTILIZAÇÃO Autor: Rony Camargo de Brito Primeira edição: 20-06-2008 Atualizado: 08-10-2008 Todos os Direitos Reservados

Leia mais

NOÇÕES DE GEOPROCESSAMENTO. Módulo 3

NOÇÕES DE GEOPROCESSAMENTO. Módulo 3 NOÇÕES DE GEOPROCESSAMENTO Módulo 3 Sistema Metropolitano de Informações Georreferenciadas MetroGeo Curso Noções de Geoprocessamento Módulo 3 Oscar Ricardo M. Schmeiske Programação Curso Noções de Geoprocessamento

Leia mais

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável

Leia mais

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Pós-Graduação em Gerenciamento de Projetos práticas do PMI Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

Leia mais

Mapserver Servidor de Mapas. João Araujo

Mapserver Servidor de Mapas. João Araujo Mapserver Servidor de Mapas João Araujo Por que fazer mapas? Mapas têm tido papel prepoderante nas atividades humanas por milhares de anos. Desde o início, mapas eram usados para mostrar onde as coisas

Leia mais

Arquiteturas, Padrões e Serviços para Geoprocessamento. Lúbia Vinhas 13/05/2008

Arquiteturas, Padrões e Serviços para Geoprocessamento. Lúbia Vinhas 13/05/2008 Arquiteturas, Padrões e Serviços para Geoprocessamento Lúbia Vinhas 13/05/2008 Desejo saber estatísticas sobre áreas queimadas. Desejo fazer análises por localização, por classes de uso ou ainda por seleção

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas Microsoft Power Point 2003 No Microsoft PowerPoint 2003, você cria sua apresentação usando apenas um arquivo, ele contém tudo o que você precisa uma estrutura para sua apresentação, os slides, o material

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

PRINCIPAIS FUNCIONALIDADES DO SOFTWARE GLOBAL MAPPER

PRINCIPAIS FUNCIONALIDADES DO SOFTWARE GLOBAL MAPPER PRINCIPAIS FUNCIONALIDADES DO SOFTWARE GLOBAL MAPPER Além das novas implementações na versão 15, ressaltamos a seguir as principais funções que fazem do Global Mapper um dos melhores softwares para a visualização

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

15 Computador, projeto e manufatura

15 Computador, projeto e manufatura A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as

Leia mais