UNIJUÍ UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DCEEng DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO DEFINIÇÃO DE UM BANCO DE DADOS GEOGRÁFICO PARA ARQUITETURA AGROMOBILE GUSTAVO HENRIQUE RORATO Santa Rosa, RS - Brasil 2014 GUSTAVO HENRIQUE RORATO DEFINIÇÃO DE UM BANCO DE DADOS GEOGRÁFICO PARA ARQUITETURA AGROMOBILE Projeto apresentado na disciplina de Trabalho de Conclusão de Curso do curso de Ciência da Computação da Universidade do Noroeste do Estado do RS como requisito básico para apresentação do Trabalho de Conclusão de Curso. Orientador: Profº Dr. Gerson Battisti Santa Rosa – RS 2014 AGRADECIMENTOS A Deus por ter me dado saúde e sabedoria para que conseguisse finalizar este trabalho. Aos meus pais pelo apoio que sempre me deram, pelos conselhos a mim dirigidos e pelo exemplo. A minha namorada Bruna pela compreensão com a minha ausência e pelo carinho. Aos amigos que me acompanharam e me ajudaram nessa jornada. Ao meu orientador, professor Gerson Battisti pela atenção, paciência e incentivo durante todo o processo. Ao professor Vínicius Maran que me ajudou na escolha do tema e na orientação no inicio do trabalho. RESUMO Este trabalho trata da definição de um banco de dados geográfico para arquitetura Agromobile. Essa aplicação é baseada na agricultura de precisão, que integra o manejo do solo com informações tecnológicas obtidas através de sensores. Para isto foi estudado os conceitos de localização espacial e técnicas de georreferenciação, tendo como objetivo de transpor para o banco de dados geográfico dados reais que possam ser usados posteriormente para analises e consultas espaciais. Diante de toda analise feita sobre o processo de obtenção desses dados, foi definido um gerenciador de banco de dados para a aplicação, o Postgis que é a extensão espacial do banco de dados PostgreSQL, por se tratar de uma ferramenta gratuita e com inúmeras funcionalidades. Com o estudo do Postgis, pode-se desenvolver testes e procurar uma forma de tornálo útil a aplicação Agromobile. Palavras chave: Georreferenciação. PostgreSQL, PostGIS, Agricultura de Precisão, ABSTRACT This work deals with the definition of a geographic database for Agromobile architecture. This application is based on precision farming, which integrates soil management with technological information obtained by sensors. For this the concepts and techniques of spatial location georeferenced, aiming to transpose the geographic database real data that can be used for later analysis and spatial queries has been studied. Faced with all analyzes performed on the process of obtaining these data, a database manager was defined for the application, which is the PostGIS spatial extension of the PostgreSQL database, because it is a free tool and has numerous features. With the study of Postgism, can develop tests and look for a way to make it useful to Agromobile application. Keywords: PostgreSQL, PostGIS, Precision Agriculture, Georeferenced. LISTA DE QUADROS Quadro 1 - Informações sobre decomposição em grade. ................................ 23 Quadro 2 - Funções de processamento da geometria. .................................... 42 Quadro 3 - Retorno das funções, tendo como base o exemplo. ...................... 49 LISTA DE FIGURAS Figura 1 - Modos de obter dados e informações terrestres. ............................. 12 Figura 2 - Linha de base................................................................................... 16 Figura 3 - Método linha de grade sob mapa. .................................................... 16 Figura 4 - Sistema de coordenadas polares com os eixos cartesianos e um conjunto de círculos centrados na origem. ....................................................... 17 Figura 5 - Quadricula militar portuguesa. ......................................................... 18 Figura 6 - Projeção de Mercator. ...................................................................... 18 Figura 7 - Quadricula militar UTM. ................................................................... 19 Figura 8 - Exemplo de árvore B........................................................................ 22 Figura 9 - Exemplo de árvore binária. .............................................................. 22 Figura 10 - Relação entre o BDG, o PostgreSQL (SGBD) e o PostGis (sua extensão espacial). .......................................................................................... 27 Figura 11 - Entidades da forma vetorial. .......................................................... 30 Figura 12 - Entidades da forma matricial. ......................................................... 31 Figura 13 - Diferença entre Geometry e Geography. ....................................... 34 Figura 14 - Exemplo gráfico da função Contains.............................................. 38 Figura 15 - Exemplo gráfico da função Touches. ............................................. 38 Figura 16 - Exemplo gráfico da função Intersects. ........................................... 39 Figura 17 - Exemplo gráfico da função Disjoint. ............................................... 39 Figura 18 - Exemplo gráfico da função Equals. ................................................ 40 Figura 19 - Exemplo gráfico da função Distance. ............................................. 40 Figura 20 - Exemplo gráfico da função Crosses............................................... 40 Figura 21 - Exemplo gráfico da função Within. ................................................. 41 Figura 22 - Exemplo gráfico da função Overlaps. ............................................ 41 Figura 23 - Mapa com os marcadores aonde posteriormente será demarcada a área da propriedade. ........................................................................................ 43 Figura 24 - Função que faz a inserção do mapa no banco de dados............... 44 Figura 25 - Polígono formado a partir dos pontos marcados no mapa. ............ 44 Figura 26 - Função que atualiza o ponto no banco de dados a cada movimentação. ................................................................................................. 44 Figura 27 - Função que verifica se o ponto está dentro do polígono................ 45 Figura 28 - Teste que retornou falso. ............................................................... 45 Figura 29 - Teste que retornou verdadeiro. ...................................................... 46 Figura 30 - Diagrama de tabelas banco de dados da aplicação Agromobile. .. 47 Figura 31 - Mapa com uma área já demarcada e outra com os marcadores para demarcar. ......................................................................................................... 47 Figura 32 - Mapa com duas áreas demarcadas. .............................................. 48 SUMÁRIO 1. INTRODUÇÃO ............................................................................................ 9 2. SISTEMAS DE INFORMAÇÃO GEOGRÁFICA ....................................... 11 2.1. MÉTODOS DE GEORREFENCIAÇÃO ................................................. 14 2.2. INDICES E FUNÇÕES ESPACIAIS ...................................................... 21 3. BANCO DE DADOS GEOGRÁFICOS ..................................................... 25 3.1. APLICAÇÕES ....................................................................................... 29 3.2. GERENCIAMENTOS DOS DADOS ...................................................... 30 3.3. OPERAÇÕES ........................................................................................ 32 4. POSTGIS .................................................................................................. 34 4.1. ANÁLISE ESPACIAL E OPERAÇÕES ESPACIAIS ............................ 36 4.2. CONSULTA MANIPULAÇÃO E APRESENTAÇÃO DE DADOS GEOGRAFICOS .............................................................................................. 43 4.3. IMPLEMENTAÇÃO DO BANCO DE DADOS DA ARQUITETURA...... 46 5. CONCLUSÃO ........................................................................................... 52 6. REFERÊNCIAS BIBLIOGRÁFICAS ......................................................... 54 INTRODUÇÃO Bancos de dados geográficos são desenvolvidos para o armazenamento de dados sobre informações espaciais, os novos sistemas permitem que as informações que anteriormente eram armazenadas em sistemas isolados possam ser armazenadas em um único local tendo em vista a melhor organização utilizando-se das regras de banco de dados. Este tipo de banco de dados tem a capacidade de armazenar dados da superfície terrestre, fazer analises e consultas desses dados. Esses tipos de consultas e analises não são suportadas pelos banco de dados normais, o que foi motivo para a criação de extensões espaciais dos mesmos. Estas extensões, chamadas de GIS (Sistema de Informação Geográfica) nada mais é do que um sistema utilizado para coletar, modelar e armazenar informações que descrevem propriedades físicas do mundo geográfico que está em rápido desenvolvimento e que foi criado para satisfazer as demandas técnicas desafiadoras e inovadoras. O sistema mencionado trabalha com dois tipos de dados, espaciais e dados que não são espaciais. Existem vários Sistemas de Informação Geográfica disponíveis, o escolhido para este trabalho é uma extensão gratuita e de código fonte livre do Sistema Gerenciador de Bancos de Dados (SGBD) PostgreSQL, o PostGIS que foi desenvolvido pela Research Refractions em 2001. Esta extensão é responsável por adicionar o suporte espacial ao banco de dados PostgreSQL. Dentre os diversos modos de utilização de um GIS, podemos listar os seguintes: localização, condição, tendência, rotas e modelos. Este tipo de sistema serve basicamente para as seguintes funções: manipular informações espaciais, cruzamento de informações e apoio na tomada de decisões. Possui suporte completo à centenas de projeções cartográficas e suas transformações e permite representar a realidade de forma precisa. Para se desenvolver um banco de dados desta espécie será preciso primeiramente que se haja uma captura de dados que podem ser elas bidimensional ou tridimensional, em uma forma digital. 9 Um exemplo prático na coleta de dados cartográficos seria em um meio agrícola, teríamos supostamente os seguintes dados: características do solo, densidade cultural e qualidade do ar e as dimensões da propriedade. Os dados podem ser analisados de diversas formas, podem ser utilizados para o estudo sobre a erosão do solo, estudos de impacto ambiental, simulações de escoamento hidrológico, entre outras analises que seriam possíveis. O trabalho tem por objetivo integrar e criar definições de um banco de dados geográfico a arquitetura Agromobile. A estrutura suporta determinados tipos de consultas espaciais utilizando um Sistema de Informação Geográfica (GIS). Para isso foi escolhido o cenário de agrícola e selecionados alguns tipos de consultas envolvendo componentes espaciais. Para tanto o trabalho foi divido nos seguintes tópicos, primeiramente um estudo abrangendo banco de dados geográficos e a extensão PostGIS com seus conceitos, objetos, funções e como são capturados os dados. Posteriormente serão feitos testes para que se possa ter uma noção do que se pode fazer com essa ferramenta no âmbito do sistema mobile desenvolvido, onde serão definidas quais funções serão usadas, quais dados vão precisar ser gravados e como será feita a manipulação dos mesmos. Após a conclusão da parte de estudo e criação das definições serão demonstrados testes práticos do uso da extensão no ímpeto de uma melhor visualização do que foi implementado. 10 SISTEMAS DE INFORMAÇÃO GEOGRÁFICA Antigamente a coleta e manipulação de dados geográficos eram dadas por meio de documentos ou através de desenhos. Os GIS são sistemas computacionais de Geoprocessamento que nos permite fazer analises complexa, precisas e rápidas de desses dados geográficos coletados tornando possível o armazenamento dessas informações em banco de dados. "Um SIG é constituído por um conjunto de "ferramentas" especializadas em adquirir, armazenar, recuperar, transformar e emitir informações espaciais. Esses dados geográficos descrevem objetos do mundo real em termos de posicionamento, com relação a um sistema de coordenadas, seus atributos não aparentes (como a cor, pH, custo, incidência de pragas, etc) e das relações topológicas existentes." (CÂMARA, 2005). Para a obtenção de dados pode ser dados de duas formas, a combinação de tipos de tecnologias distintas utilizados para por empresas e instituições para estudar o espaço terrestre. Sensoriamento remoto: trata-se da utilização de satélites e radares para a captura de imagens da área terrestre. Com isso pode ter-se dados importantes, como a extensão territorial de determinada área, o tamanho de uma área coberta de vegetação, entre outros. As imagens também podem ser obtidas por meio de aviões e helicópteros que possuem câmeras especiais. GPS (Sistema de posicionamento global): tecnologia atual de posicionamento que vem ganhando bastante espaço no meio agrícola para ajudar no manejo da terra, na chamada agricultura de precisão, diminuindo os custos de produção e agilizando o processo. Aparelho capaz de identificar a latitude e longitude em qualquer lugar do mundo com o apoio de dezenas de satélites espalhados pela Terra. 11 Figura 1 - Modos de obter dados e informações terrestres. Fonte: Nunes (2014). Todas as coordenadas que são utilizadas no GPS são baseadas no Datum, existem vários Datum diferentes em todo o mundo, inclusive em um mesmo país pode haver vários disponíveis. Para entender o sistema de informação geográfica, antes temos que entender alguns conceitos. O primeiro deles é que a Terra não é uma esfera perfeita, ela tem seus pólos achatados (YAMASHIRO, 2010). Se a Terra fosse ter um formado de esfera perfeita, absolutamente todos os seus pontos iriam atingir a sua superfície. Para a análise das coordenadas é utilizado um sistema geodésico, que é obtida através de tecnologias de observação de satélites artificiais. Conforme os anos passam e a tecnologia avança, muda também esse alguns pontos da referência, formando assim uma nova versão de sistema geodésico. 12 "Independente do método utilizado para se representar ou projetar uma determinada superfície no plano, deve-se adotar uma superfície que sirva de referência, garantindo uma concordância das coordenadas na superfície esférica da Terra. Com este propósito, deve-se escolher uma figura geométrica regular, muito próxima da forma e dimensões da Terra, a qual permite, mediante a um sistema coordenado, posicionar espacialmente as diferentes entidades topográficas. Esta figura recebe à denominação de elipsóide e as coordenadas referidas a ele são denominadas de latitude e longitude geodésicas." (IBGE, 2012). Além do Datum, também precisamos de um sistema de coordenadas projetas. Esse sistema serve para pegar os objetos em três dimensões e transformá-los em um plano de duas dimensões, para ser exibido como se fosse um mapa, na tela do computador. Todos esses conceitos e processos envolvidos para se obter as informações espaciais estão comprimidas em um só código, chamado de SRID. Como o SRID é um conjunto de todas essas informações, quando utilizamos alguma aplicação para fins espaciais, ao invés de termos que informarmos todos esses dados, somente definimos o SRID. Juntando todas essas informações obtemos um código, como esses exemplos: Exemplo do SRID 4326: GEOGCS["WGS84", DATUM["WGS_1984", SPHEROID["WGS84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]], UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]] Exemplo do SRID 2000: PROJCS["Anguilla 1957 / British West Indies Grid", GEOGCS["Anguilla 1957",DATUM["Anguilla_1957", 13 SPHEROID["Clarke1880(RGS)",6378249.145,293.465, AUTHORITY["EPSG","7012"]], AUTHORITY["EPSG","6600"]], PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]], UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4600"]],UNIT["metre",1,AUTHORITY["EPSG","900 1"]], PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" ,0], PARAMETER["central_meridian",62],PARAMETER["scale_factor",0.999 5], PARAMETER["false_easting",400000], PARAMETER["false_northing",0],AUTHORITY["EPSG","2000"],AXIS["Ea sting",EAST],AXIS["Northing",NORTH]] Nos dois exemplos é utilizado como ponto de referência o meridiano de Greenwich e a unidade de medida degree. A grande diferença entre os dois exemplos citados acima é que a segundo utiliza um tipo de projeção, chamado Projeção de Mercator Transversa. 2.1. MÉTODOS DE GEORREFENCIAÇÃO O sistema de referencia de espacial baseia-se nos valores das coordenadas do plano. Para garantir a que a integração dos dados que é obtida de diversas fontes a maioria dos países já definiu sistemas de georreferenciação de proporção nacional. O objetivo de um sistema de georreferenciação é a descrição quantitativa de posições no espaço. A sua definição é dada por um modelo físico da Terra e para o espaço em que se movimenta determinada por parâmetros. 14 "No aspecto ciência podemos considerar as preocupações humanas em tentar representar num plano a dificilmente conceptível superfície da Terra, a que chamamos Geóide é objeto da matemática conseguir arranjar relações (formulas) que permitam essa representação, permitindo ainda conceber um conjunto de quadrículas que vão permitir ao homem indicar com facilidade a outro homem, o posicionamento de locais ou objetos, ou seja um sistema de referência." (ALVES, 2006). A descrição dos pontos da Terra é feito por meio de coordenadas, independentemente do tipo de coordenada utilizada, o sistema de referencia é composto de três eixos ortogonais: Origem; Orientação dos eixos; Pontos cartesianos. Os sistemas de coordenadas são classificados em: Geodésicos; Geográficos. Para utilizar estes dados existem os métodos de georeferenciação que são esses: Linha base: é o método que se utiliza da linha a nivel do mar. 15 Figura 2 - Linha de base. Fonte: Moura (2014). Grade: este método consiste em traçar linhas verticais e horizontais formando uma grade, o que torna mais facil conseguir uma perspectiva e formas mais precisas. Figura 3 - Método linha de grade sob mapa. Fonte: Fontaneille (2011). 16 Coordenadas polares: a localização de cada ponto é feita a partir da determinação da distância entre o ponto considerado a um ponto fixo (pólo) e do desvio do ângulo em relação a uma direcção da origem. Figura 4 - Sistema de coordenadas polares com os eixos cartesianos e um conjunto de círculos centrados na origem. Fonte: Ferreira (2013). Quadricula militar portuguesa: é a utilizada nos mapas militares de Portugal nas escalas 1:25 000 e 1:250 000. Para o exército interessava que Portugal ficasse no 1º quadrante, para que todas coordenadas ficassem positivas. 17 Figura 5 - Quadricula militar portuguesa. Fonte: Alves (2006). Projeção Mercator: é uma projeção cilíndrica, criada em 1569. Nessa projeção os meridianos são linhas paralelas verticais e possuem a mesma distancia das paralelas na seqüência. Figura 6 - Projeção de Mercator. Fonte: Alves (2006). Projeção Mercator Transversa: dividiu-se a superfície terrestre em 60 fusos numerados de 1 a 60, com uma amplitude de 6º, sendo o primeiro meridiano de longitude 180º e crescendo para Leste. 18 Figura 7 - Quadricula militar UTM. Fonte: Alves (2006). OGC - Open Geospacial Consortium: Trata-se de um consorcio de parâmetro internacional que possui a colaboração de mais de 300 instituições, sejam elas governamentais, universitárias e empresas privadas. O grande objetivo do OGC é servir com uma grande comunidade global reunindo os dados colaborativos de desenvolvedores e usuários que utilizam serviços com base em dados espaciais . Essa comunidade tem como objetivos principais: 1. Assegurar que seus padrões e informações sejam abertos para todo o mercado. Além disso, confere a seus usuários e colaboradores benefícios. 2. Fazer com que a rede mundial estabeleça padrões que permitam que conteúdos geoespaciais sejam continuamente integrados em processos de negocio, na web e em corporações. 3. Facilitar a adesão das formas de referencia abertas e espacialmente habilidades em corporações no mundo todo. 19 4. Evoluir nos padrões no suporte a criação de novas aplicações para tecnologia geospacial. 5. Acelerar a assimilação pelo mercado no que se diz respeito a pesquisas de interoperabilidade através de grupos de colaboradores. Padrões e informações abertas é o todo aquele que é criado como um processo internacional com a participação da industria, possui direitos gratuitos de distribuição, possui acesso livre as suas especificações, não descrimina grupos ou pessoas e da garantia de que suas especificações e licença sejam tecnologicamente neutras. Dentro do formato OGC existem alguns padrões: WMS - Web Mapping Service: Esse é um padrão que tem uma interface HTTP para fazer as requisições dos dados que estão no banco de dados espacial. Após feita uma requisição ao banco de dados esse padrão coleta a definição e a área de interesse a ser processada e retorna uma imagem(formato: jpg, png ou em algum outro formato suportado). O WMS tem três operações, são elas: GetCapatibilities: retorna as informações do serviço, conteúdo e parâmetros. GetMap: retorna a imagem de um mapa seguindo os parâmetros definidos: tamanho do mapa e o sistema de referência espacial. GetFeatureInfo: retorna as informações de uma parte especifica mostrada no mapa. WFS - Web Feature Service: Este padrão que suporta inserções, atualizações, deleções e consultas de caráter geográfico. Assim que uma consulta através de clientes HTTP é feita retorna uma representação GML. Sendo assim é possível criar instâncias, consultar tanto dados espaciais quanto não espaciais, remover registros e atualizar registros. 20 WCS - Web Coverage Service: Define uma interface que consegue acessar dados matriciais. Suporta imagens de satélites e fotos áreas digitais. SFS - Simple Feature Specification: Essa é a forma mais comum utilizada para o armazenamento de dados espaciais ou não espaciais. Podem ser inseridos pontos, polígonos, linhas, entre outros, em seu banco de dados objeto-relacional. O objetivo deste padrão é definir parâmetros SQL que suporte o armazenamento, recuperação, consulta e atualização de coleções de aspecto geospaciais simples via API OBDC. 2.2. INDICES E FUNÇÕES ESPACIAIS Os índices espaciais são criados usando b-tree's, esse tipo de estrutura é utilizado para aplicações que demandam uma grande quantidade de informação. As árvores B são diferentes das árvores binárias pelo fato de que enquanto a binária armazena um único dado binário em cada um de seus nós, a árvore B pode armazenar um número maior de informações e ter mais ramificações saindo de seus nós. "As árvores B são árvores balanceadas projetadas para trabalhar com dispositivos de armazenamento secundário como discos magnéticos. Elas visam otimizar as operações de entrada e saída nos dispositivos. O tempo de acesso às informações em um disco é prejudicado principalmente pelo tempo de posicionamento do braço de leitura. Uma vez que o braço esteja posicionado no local correto, a leitura pode ser feita de forma bastante rápida. Desta forma, devemos minimizar o número de acessos ao disco."(NONATO, 2005). 21 Exemplo de árvore B: Figura 8 - Exemplo de árvore B. Fonte: Farner (2008). Exemplo de árvore binária: Figura 9 - Exemplo de árvore binária. Fonte: Borelli (2013). O processo de criação de índices é dividido em níveis, conforme a necessidade da aplicação, por exemplo, quando se tem uma grade de densidade 4 x 4, existem os níveis: 1, 2, 3 e 4. Todos esses níveis possuem o mesmo número de células e todas elas possuem o mesmo tamanho. 22 "O número de células ao longo dos eixos de uma grade determina sua densidade: quanto maior o número, mais densa a grade. Por exemplo, uma grade de 8x8 (que produz 64 células) é mais densa do que uma grade de 4x4 (que produz 16 células). A densidade da grade é definida em uma base por nível." (MICROSOFT, 2014). Para a definição de densidade da grade, temos as seguintes nomenclaturas: Quadro 1 - Informações sobre decomposição em grade. Nomenclatura Tamanho da grade Quantidade de células Low 4x4 16 Medium 8x8 64 High 16x16 256 Fonte: Autoria Própria, 2014. Após a decomposição em grade, ocorre um processo chamado de mosaico, onde o índice faz uma leitura de todas as linhas da coluna de formato espacial. O processo de mosaico organiza o objeto na hierarquia da grade, iniciando sempre do primeiro nível até o último, passando nível a nível. "A saída do processo de mosaico é um conjunto de células tocadas que são registradas no índice espacial do objeto. Consultando essas células registradas, o índice espacial pode localizar o objeto no espaço em relação a outros objetos na coluna espacial que também são armazenados no índice." (MICROSOFT, 2014). No processo de mosaico existem algumas regras, que serão abordadas agora. Essas regras servem para limitar o número de células tocadas registradas para um determinado objeto. As regras são: 1. Regra de Cobertura: essa regra é para que se o objeto cobrir uma célula por inteiro. Sendo ela totalmente coberta, a mesma não é incluída no mosaico. Essa regra se aplica a todos os níveis da hierarquia e ajuda o índice espacial a reduzir a quantidade de dados registrados. 2. Regra de Células por objeto: uma das principais regras, que força um limite de células por objeto. Porém no primeiro nível essa regra não se aplica. Nos níveis exceto o primeiro, essa regra ajuda a controlar a quantidade de informações que podem ser registradas sobre o objeto. 23 3. Regra de Célula mais profunda: o objetivo desta regra é não registrar as células pai, sendo assim, não contribuem para a contagem de células por objeto. Existe ainda uma caixa limitadora, que tem por objetivo definir um fim para um índice espacial. A caixa delimitadora possui quatro coordenada que são gravadas como propriedades do índice espacial, (x-min,y-min) e (x-max,ymax), onde: (x-min,y-min): são as coordenadas x e y referentes aos cantos inferiores esquerdo da caixa delimitadora. (x-max,y-max): são as coordenadas x e y referentes aos cantos superiores direito da caixa delimitadora. 24 BANCO DE DADOS GEOGRÁFICOS Desde sempre há a necessidade e interesse do homem de estudar a geografia ao seu redor, a coleta de informações está no seu instinto. O ser humano desde o inicio de sua existência precisou desses dados para a sua sobrevivência, como por exemplo, aonde existiam recursos minerais e obstáculos naturais. No principio a coleta e armazenagem de toda essa informação era por meio da escrita, utilizando-se de conhecimentos e ferramentas para se criar as notações. Mas como esse tipo de notação possuía suas limitações, começou a surgir o conceito de geoprocessamento utilizando a capacidade computacional para o seu desenvolvimento. O geoprocessamento nada mais é do que técnicas matemáticas que nos permite analisar dados geográficos. Todo esse avanço na coleta e processamento dos dados trouxe consigo várias facilidades, seja na área de transporte, saúde, planejamento urbano, área rural, entre outros. "Com esse recurso pode-se, por exemplo, monitorar queimadas e desmatamentos de forma mais efetiva e acurada. Outro uso dessa tecnologia é suprir informações de regiões onde os dados geográficos são insuficientes ou mesmo inexistentes."(GUERRA, 2011). O que distingue este tipo de banco de dados geográficos de um banco de dados normal, utilizado em vários meios, como em sites, empresas para cadastros de produtos, clientes, entre outros é que suporta dados geométricos em suas tabelas. Outro ponto a se ressaltar é que um Sistema de Gerenciamento de Banco de Dados (SGBD) convencional não suporta a implementação de um Banco de Dados Geográficos na sua forma original, sem que se tenha que instalar algum recurso ou extensão. “O que diferencia os chamados dados geográficos dos demais é sua componente espacial. Por isso eles também são chamados de dados espaciais. Quando falamos em componente espacial queremos dizer que estes dados são representações da superfície terrestre e estão relacionados com sua localização no espaço, ou seja, podem ser posicionados em determinada região geográfica tendo por base suas coordenadas.” (MEDEIROS, 2010). 25 Dados geográficos são armazenados em SIG's, que são sistemas de informações geográficas. Surgiram no ano de 1960 no Canadá, com a finalidade de servir ao governo na criação de uma base de dados com informações sobre os recursos naturais. No começo esses sistemas eram extremamente limitados, como na década de 60 os computadores existentes não possuíam uma grande capacidade de processamento comparado aos de hoje, não havia como executar analises um pouco mais complexas. "Desde a criação do primeiro sistema simples para aplicação da cartografia por meio de sistemas informatizados em 1950, até a recente massificação do acesso à GIS (como o Google Earth), as tecnologias para captura, armazenamento, tratamento e recuperação de informações georreferenciadas tem melhorado cada vez mais e possibilitado um leque cada vez maior de aplicações. Assim, podemos identificar três formas principais de se utilizar um SIG: para produção de mapas, como suporte para a análise espacial de fenômenos, ou como um banco de dados geográficos, com funções de armazenamento e recuperação de informação espacial." (FARIA, 2012). O gerenciamento de dados dos sistemas pode ser dividido em três arquiteturas: Arquitetura Dual: Nesse tipo de arquitetura os dados são armazenados em tuplas em relações dentro de um banco de dados relacional gerenciados por um sistema gerenciador de banco de dados. Por se tratar de uma arquitetura simples é suportada por qualquer SGBD. A execução de uma analise é dada da seguinte forma, uma parte da operação é efetuada pelo SGBD e a outra parte pelo SIG, por ser executada nessas duas etapas é que recebe o nome de Dual. Arquitetura Integrada: Ao contrario da arquitetura Dual, está utiliza somente o SGBD para manipular os dados. A vantagem que tem sobre a outra arquitetura não elimina uma desvantagem sua, que é a impossibilidade de manipulação via SQL (Structured Query Language). Arquitetura Integrada via Extensão Espacial: Essa é a ultima evolução dos SIG's, possibilitando o armazenamento e manipulação de dados mais complexos. Com esse avanço foi possível aumentar o 26 suporte para outros tipos de geometrias, funções e operadores. Empresas tais como: Oracle, PostgreSQL e MySQL lançaram extensões para dados georeferenciados. Para este trabalho será utilizado o PostGIS que se trata de uma extensão grátis e de código livre do SGBD PostgreSQL. Desenvolvida pela empresa Research Refractions no ano de 2001 e adiciona suporte espacial ao PostgreSQL. Figura 10 - Relação entre o BDG, o PostgreSQL (SGBD) e o PostGis (sua extensão espacial). Fonte: Medeiros (2010). O PostGIS é um sistema de informação geográfica que é utilizado para: coletar, modelar, armazenar e analisar informações descrevendo perfeitamente o mundo físico. 27 Este sistema abrange dois tipos de dados: Dados Espaciais: são originadas a partir de mapas, imagens digitais, fronteiras administrativas e políticas, estradas, redes de transporte, rios, condições climáticas, entre outros; Dados que não são Espaciais: são como dados econômicos, de vendas e marketing. Um dos grandes benefícios desta extensão é que se utilizam SQL para trabalhar com os dados, ou seja, não existe necessidade de se aprender uma nova linguagem para utilizá-la, pois é a mesma do PostgreSQL. Além deste fator há vários outros pontos positivos que fizeram com que a melhor opção para este projeto fosse o PostGIS, como por exemplo: Por ele ser tratar de um software livre; Ser compatível com padrões OGC o que significa que tem uma grande facilidade de integrar dados de diversas fontes; Seu poder funcional, pois tem suporte ao uso de índices espaciais e centenas de recursos para analisar e tratar dados espaciais; A facilidade com que os dados possam ser importados e exportados, pois tem ferramentas para conversão nativas; Ele é um GIS altamente utilizado, atualmente é o software livre para o gerenciamento de dados espacial mais utilizado no mundo, com isso o numero de colaboradores é enorme; Com todos esses aspectos abordados e com testes de desempenho feitos o PostGIS consegue superar softwares proprietários que são utilizados para o mesmo fim. 28 3.1. APLICAÇÕES Os SIG's podem ser uma ótima alternativa para facilitar e auxiliar nos mais variados tipos de atividades. A sua capacidade de processar analises o torna uma ferramenta importante e indispensável em determinados casos. Esses sistemas vieram com a finalidade de tornar obsoleto o uso de sistemas arcaicos de obtenção de informações geográficos, que além de ser impossível fazer algumas análises, processos um pouco mais complexos já se tornam muito demorados e inviáveis. "Os SIGs oferecem ótimas ferramentas de apoio à decisão, com custo de aquisição e treinamento de pessoal variado. A versatilidade na manipulação dos dados georreferenciados, a possibilidade de operar sobre plataformas de baixo custo, como os computadores pessoais, e a relativa simplicidade de operação tornam-no um recurso bastante interessante, pois permitem que decisões sejam tomadas a partir de critérios definidos de forma participativa e sustentável."(MAEDA, 2014). Em suas aplicações o SIG pode ser dividido em três principais categorias: Aplicações Cartográficas: irrigação, avaliação de solo, estudos paisagístico, analise de padrões de trafego, entre outros. Aplicações de Modelagem Digital de Terrenos: estudos dos recursos científicos da Terra, avaliação de engenharia civil e militar, levantamento de solos, estudos de poluição do ar e da água, controle de enchentes, gerenciamento de recursos híbridos, entre outros. Aplicações de Objetos Geográficos: sistema de navegação de veículos analise geográfica de mercado, distribuição e consumo de serviços públicos, entre outros. As categorias de aplicações cartográficas e aplicações de modelagem digital de terrenos requerem representação com base em campos e a aplicação de objetos geográficos necessita de uma representação baseada em objetos. Em aplicações que são baseadas em objetos é necessário que se tenha funções espaciais adicionais na maioria dos casos, para que se possa ter um comparativo no tempo. 29 “Tarefas difíceis, como a construção de mapas temáticos precisos, cruzamentos de informações espaciais e outras tarefas são simplificadas com o uso de um pacote SIG”.(SILVA, 2009). A grande consolidação desse tipo de tecnologia foi o surgimento do Google Maps que começou a fornecer para os desenvolvedores uma forma simples de construir aplicações que necessitam a utilização de um serviço de busca em de mapas. Além dessa facilidade trata-se de um serviço gratuito e de abrangência mundial. "Hoje em dia, o acesso está literalmente nas palmas das mãos de todos nós através dos smartphones, por exemplo. A localização geográfica é uma informação preciosa às pessoas, podendo apresentar praticamente tudo: seja a simples localização de um ente querido, o roteiro de uma viagem de final de semana, um mapa para gestão de equipe de vendas de uma empresa ou até mesmo um detalhado plano de emergência integrando dezenas de secretarias de um Governo em questão."(SEABRA, 2013). 3.2. GERENCIAMENTOS DOS DADOS Os dados de um GIS são representados por duas formas básicas, são elas os vetoriais e matriciais. A classe vetorial trata-se de dados que tem pelo menos um par de coordenadas, então elas podem ser linhas, polígonos, elementos lineares ou simplesmente pontos. Figura 11 - Entidades da forma vetorial. Fonte: Medeiros (2009) 30 Os pontos podem ser utilizados para a representação de lugares ou marcadores, como por exemplo, em um mapa que represente uma epidemia podem ser áreas atingidas pela doença, são varias as possibilidades. As outras formas podem ser as traçadas de rios, ruas e os polígonos podem ser países, continentes, entre outros. “Considera que estes sistemas não apresentam apenas a função de manipulação de dados geográficos, mas, dentro de um SIG, os dados estruturados representam um modelo do mundo real”(BURROUGH, 1986) A forma matricial pode ser representada por um determinado numero de colunas e linhas que formam uma matriz. Cada célula tem um valor correspondente ao atributo analisado e pode ser localizada pelo cruzamento entre as linhas e colunas. Figura 12 - Entidades da forma matricial. Fonte: Medeiros (2009) Essas duas formas possuem vantagens e desvantagens e para cada uso se tem critérios a serem analisados para uma melhor utilização. No entanto o uso da forma vetorial geralmente é mais usado para representar mapas, ruas, rios e tudo que for referente a coordenadas, já a forma matricial é amplamente utilizada para representar variações, como por exemplo, para representar a variação de temperatura de um determinado local em um intervalo de tempo. 31 As analises dos dados podem ser feitas para diferentes propósitos, seja para analise de vegetação, analise de solo, entre vários outros tipos de analises e estudos. Por ser tão fiel ao meio físico real esse tipo de aplicação esta sendo usado amplamente para tomadas de decisões por empresas, organizações, entre outros que possa se utilizar desta. As capturas dos dados podem ser tanto bidimensionais quanto tridimensionais e é esse o primeiro passo para a criação de um banco de dados geográfico. Neste caso são vários os fatores que são importantes para que o processo decorra de forma correta, o que se leva em conta é o mapafonte, de onde serão extraídos os dados, caso esteja com uma resolução ruim, tipo de projeção inapropriado e com as escalas erradas alterará o resultado final. 3.3. OPERAÇÕES Um GIS possui varias operações específicas, que não funcionam em um SGBD normal, sem ter instalado nenhuma extensão e sem suporte a representações vetoriais e matriciais. Podemos classificar as operações nas seguintes: Interpolação: é a operação em que se baseia na triangulação que utiliza o método TIN para interpolar as elevações dentro do mesmo conforme a elevação de seus vértices; Interpretação: trata-se da interpretação de dados do terreno, como por exemplo: edição, realce, borda de triângulos, suavização, redução de detalhes, entre outros; Analise de proximidade: é a operação de analise de pontos de interesse, ao redor de objetos, como por exemplo, a determinação do buffer ao redor um carro em uma rodovia; Processamento de imagem matricial: esta operação é dividida em álgebra de mapas e analise de mapas, a primeira é utilizada para criar varias camadas em um mapa para produzir algebricamente novos 32 mapas, a segunda é a analise de uma imagem digital para a descoberta de extremidades e objetos em um mapa; Analise de redes: utilizada para produzir, por exemplo, um perfil dos lugares onde há pouco desmatamento em uma área de proteção ambiental, utilizando-se de um banco de dados com pontos. 33 POSTGIS Essa ferramenta é uma extensão do banco de dados PostgreSQL, com a capacidade de armazenar e manipular dados espaciais. Esta extensão pode ser utilizada para diversas funcionalidades, desde obter informações detalhadas sobre o solo de determinada região até a taxa de mortalidade de uma cidade. O PostGIS pode ser dividido em dois tipos de dados: Geometry: Trata-se de um formato para dados geográficos com várias funções para manipular e converter dados. Esses tipos de dados têm como base um plano, por este motivo é possível realizar muito mais operações em cima deles. O grande problema dessa espécie de dados é que a terra é uma esfera o que faz com que não haja tanta precisão nos dados quando se faz uma analise de grandes territórios. Geography: É o tipo de dados mais recente disponível e ao contrário do Geometry tem por referencia uma esfera que leva em consideração a curvatura da terra dando muito mais precisão na obtenção dos dados. Figura 13 - Diferença entre Geometry e Geography. Fonte: OpenGeo Suite User Manual(2011). 34 Dentro das tabelas do banco de dados guarda-se informações de coordenadas e o tipo de objeto que pertencem. Levando em conta o padrão em que estão. Os principais tipos de objetos que se tem são: Point: Um ponto, são necessárias duas coordenadas (x,y) para definir um ponto. Por exemplo: POINT(1,1); Linestring: Uma linha. São necessários no mínimo quatro pontos, sendo que dois são referentes ao ponto de partida da linha e outros dos referentes ao ponto de chegada. Por exemplo: LINESTRING(0 0, 1 1); Polygon: Um polígono. Pode possuir vários ângulos, só deve se ter atenção pois a última coordenada deve ser idêntica a primeira, para que o polígono possa fechar no mesmo ponto que se iniciou. Por exemplo: POLYGON(0 0,10 0,10 10,0 10,0 0); Multipoint: Vários pontos. É composto por vários pontos cada uma contendo coordenadas x e y. Por exemplo: MULTIPOINT(0 0, 20 20, 60 60); Multilinestring: Várias linhas. É composta por várias linhas cada uma contendo quatro coordenadas, sendo duas as de inicio da linha e duas do final da linha. Por exemplo: MULTILINESTRING((10 10, 20 20), (15 15, 30 15)); Multipolygon: Vários polígonos. É composto por vários polígonos cada um com vários ângulos. Por exemplo: MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5))); Geometrycollection: Várias geometrias, sendo estas as citadas acima. Por exemplo: GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20)). 35 Existem dois tipos de padrões utilizados para a representação dos objetos, são eles: WKT(Well-Know Text): É o padrão utilizado para representar os dados em ASCII. Exemplo: Para gravar um formato tipo point, com coordenadas x e y de valor 1, seria gravado o seguinte registro no banco de dados POINT(1,1). WKB(Well-Know Binary): É o padrão utilizado para representar os dados em formato BLOB. Exemplo: Para gravar dados utilizando o mesmo formato do item acima seria gravado o seguinte registro: 0101000000000000000000F03F000000000000F03F Explicando melhor a seqüência, seria dividida nas seguintes partes: Byte order: 01 WKB type (refere-se ao tipo de geometria utilizada): 01000000 Coordenada x: 000000000000F03F Coordenada y: 000000000000F03F Alem das coordenadas e objetos existem também o SRID que todo objeto deve ter ao ser inserido no banco de dados geográfico. Uma coluna da tabela pode conter vários SRID’s diferentes porem apenas instancia que tenham o mesmo SRID é que podem ser usadas ao executar operações. "O resultado de qualquer método espacial derivado de duas instâncias de dados espaciais será válido apenas se essas instâncias tiverem o mesmo SRID que é baseado na mesma unidade de medida." (FROZZA, 2013). 4.1. ANÁLISE ESPACIAL E OPERAÇÕES ESPACIAIS As operações que ocorrem dentro de um banco de dados geográficos podem ser divididas em vários tópicos. Dos quais quatro são principais e o resto subtópicos. As operações de entrada de dados podem ser para a: Compilação dos dados, que nada mais é do que a transformação dos dados coletados para uma forma que o sistema consiga utilizar. 36 Georeferrenciação dos dados é o processo de possibilitar que uma imagem ou um mapa tenha suas coordenadas conhecidas para um determinado sistema. Reestruturação dos dados trata-se da modificação dos dados obtidos para que possam ser suportados e utilizados pelo sistema. Edição é reconhecer e solucionar inconsistências espaciais para que o sistema possa utilizar. Existem também as operações para a manipulação dos dados já obtidos, são eles: Seleção é um conjunto de critérios aplicados sobre determinadas características. Descrição é o cálculo de índices relacionados com as propriedades geométricas dos objetos. Transformação como o próprio nome diz, é a modificação dos valores das características. As operações de saída dos resultados envolvem operações de: Desenho gráfico é utilizado para a construção de desenhos ou figuras utilizando símbolos e cores. Visualização utilizada para representar os dados em lugares periféricos no gráfico. Reestruturação é o que permite que os dados sejam exportados para outro sistema e possam ser suportados por ele. Resumir é transformar a informação apresentados em relatórios. em índices para serem E por final as operações em três dimensões: Calculo de altitude utilizada para poder obter com precisão cálculo de declives, interpolação, entre outros. Manipulação de imagens utilizada quando se precisa de uma visualização de outro ângulo de determinado lugar iluminado ou não. O PostGIS nos da a capacidade de executar várias funções. São estas funções que nos dão a possibilidade de obter e manipular os dados geográficos 37 inseridos no banco de dados. Exemplos de funções de relacionamento entre geometrias podem ser usadas: Contains: Retorna um valor booleano verdadeiro se a geometria A contem a geometria B, caso contrário retorna falso. Exemplo SQL: SELECT ST_contains(m.coordenadas,p.ponto) tabela_coordenadas m FROM tabela_ponto p, Exemplo Gráfico: Figura 14 - Exemplo gráfico da função Contains. Fonte: Autoria Própria (2014). Touches: Retorna um valor booleano verdadeiro se a geometria toca na outra geometria, caso contrário retorna falso. Exemplo SQL: SELECT ST_touches(geometriaA,geometriaB) FROM tabela_geometrias Exemplo Gráfico: Figura 15 - Exemplo gráfico da função Touches. Fonte: Autoria Própria (2014). Intersects: Retorna um valor booleano verdadeiro se a geometria cruza a outra geometria, caso contrário retorna falso. Exemplo SQL: SELECT ST_intersects(geometriaA,geometriaB) FROM tabela_geometrias 38 Exemplo Gráfico: Figura 16 - Exemplo gráfico da função Intersects. Fonte: Autoria Própria (2014). Disjoint: Retorna um valor booleano verdadeiro se as bordas e interiores das geometrias não se interceptam, caso contrario retorna falso. Exemplo SQL: SELECT ST_disjoint(geometriaA,geometriaB) FROM tabela_geometrias Exemplo Gráfico: Figura 17 - Exemplo gráfico da função Disjoint. Fonte: Autoria Própria (2014). Equals: Retorna um valor booleano verdadeira quando as duas geometrias tiverem a mesma e mesmo interior, caso contrário retorna falso. Exemplo SQL: SELECT ST_equals (geometriaA,geometriaB) FROM tabela_geometrias 39 Exemplo Gráfico: Figura 18 - Exemplo gráfico da função Equals. Fonte: Autoria Própria (2014). Distance: Retorna a distância cartesiana de duas geometrias. Exemplo SQL: SELECT ST_distance(geometriaA,geometriaB) FROM tabela_geometrias Exemplo Gráfico: Figura 19 - Exemplo gráfico da função Distance. Fonte: Autoria Própria (2014). Crosses: Retorna um valor booleano verdadeiro quando duas geometrias se cruzam, caso contrário retorna falso. Exemplo SQL: SELECT ST_crosses (geometriaA,geometriaB) FROM tabela_geometrias Exemplo Gráfico: Figura 20 - Exemplo gráfico da função Crosses. Fonte: Autoria Própria (2014). Within: É a função contrária do contains. 40 Exemplo SQL: SELECT ST_contains(geometriaA,geometriaB) FROM tabela_geometrias Exemplo Gráfico: Figura 21 - Exemplo gráfico da função Within. Fonte: Autoria Própria (2014). Overlaps: Retorna um valor booleano verdadeiro se a geometria sobrepor a outra, caso contrario retorna falso. Exemplo SQL: SELECT ST_overlaps(geometriaA,geometriaB) FROM tabela_geometrias Exemplo Gráfico: Figura 22 - Exemplo gráfico da função Overlaps. Fonte: Autoria Própria (2014). Relate: Retorna um valor booleano verdadeiro se esta geometria é espacialmente relatada para outra geometria,testando intersecção entre o interior, o limite e o exterior de duas geometrias como especificado pelos valores em uma intersectionPatternMatrix. 41 Exemplo de funções de processamento da geometria: Quadro 2 - Funções de processamento da geometria. Função Centroid Area Descrição Retorna o ponto central de uma geometria. Retorna a área total da geometria. Length Retorna o comprimento de uma curva em sua referencia espacial. PointOnSurface Retorna um ponto qualquer mas que esteja dentro da superfície da geometria. Boundary Retorna o fechamento do limite da geometria, ou seja, o ponto em que o inicio do desenho da geometria se encontra com o fim do desenho. Buffer Retorna uma geometria que represente todos os pontos que distanciam desta geometria. ConvexHull Retorna uma geometria que represente o exterior convexa da mesma. Intersection Retorna uma geometria que interseção entre duas geometrias. representa a SymDifference Retorna uma geometria que representa a diferença simetria da geometria A para a B. Difference Retorna uma geometria que representa a diferença simetria da geometria A para a B. GeomUnion Retorna uma geometria que represente a união das geometrias associadas. MemGeomUnion Retorna o mesmo que a função anterior só que com um menor uso de memória. Fonte: Autoria Própria (2014). 42 4.2. CONSULTA MANIPULAÇÃO E APRESENTAÇÃO DE DADOS GEOGRAFICOS Neste capitulo iremos abordar testes de consulta e manipulação de dados espaciais utilizando a ferramenta Google Maps. Foi escolhido o Google Maps pois ele se baseia em coordenadas reais que mais tarde podem ser utilizadas no mundo real e também para que possamos ter uma visualização melhor do das funções desempenhadas pelo banco de dados. A programação foi feita em PHP integrado ao PostGIS(SEABRA, 2013). Primeiramente era necessário que se marcassem pontos (coordenadas x e y) no mapa que juntos representariam um polígono, que fisicamente poderíamos comparar a uma área agrícola. O polígono poderia ter vários pontos, quanto o usuário precisasse para demarcar a sua área. Figura 23 - Mapa com os marcadores aonde posteriormente será demarcada a área da propriedade. Fonte: Autoria Própria (2014). Após o usuário selecionar seus pontos ele gerava o mapa com sua área demarcada, gravando em uma tabela chamada 'tabela_mapa' o nome do mapa e as coordenadas. Foi utilizada a função ST_GeomFromText que serve para converter uma geometria WKT com o SRID. 43 Figura 24 - Função que faz a inserção do mapa no banco de dados. Fonte: Autoria Própria (2014). Figura 25 - Polígono formado a partir dos pontos marcados no mapa. Fonte: Autoria Própria (2014). Finalizado o processo da criação da área era dado inicio aos testes algumas funções importantes do PostGIS. Primeiro teste foi a inserção de um ponto qualquer no mapa para testar se o mesmo estava dentro daquela geometria ou não. A cada movimentação no mapa era chamada uma função que fazia o update do ponto na tabela 'tabela_ponto' utilizando a mesma função SQL do polígono e o mesmo SRID para que possa ser possível a comparação . Figura 26 - Função que atualiza o ponto no banco de dados a cada movimentação. Fonte: Autoria Própria (2014). 44 Depois de termos a área e o ponto, chamamos uma função que verifica se uma geometria está dentro da outra. Figura 27 - Função que verifica se o ponto está dentro do polígono. Fonte: Autoria Própria (2014). O retorno da função se o ponto estivesse fora do polígono era falso e se estiver dentro verdadeiro. Exemplificando temos: Figura 28 - Teste que retornou falso. Fonte: Autoria Própria (2014). Quando o marcador está dentro do poligono e é executada a função o retorno é verdadeiro: 45 Figura 29 - Teste que retornou verdadeiro. Fonte: Autoria Própria (2014). Como podemos notar, o uso do Google Maps API é muito útil para termos uma visão gráfica do que ocorre dentro do banco de dados geográfico. Além de facilitar essa visualização, estamos tratando de coordenadas reais, então podemos utilizar essa aplicação para solucionar questões do mundo real (SEABRA, 2013). 4.3. IMPLEMENTAÇÃO DO BANCO DE DADOS DA ARQUITETURA Neste capítulo iremos tratar da integração do banco de dados geográfico com a arquitetura Agromobile, fazendo um estudo das tabelas e linhas necessárias para o armazenamento das informações geográficas. Para tanto, usaremos a aplicação do Google Maps para uma melhor visualização do que ocorre quando se é executada as funções. O banco de dados da aplicação Agromobile foi criado conforme o seguinte diagrama: 46 Figura 30 - Diagrama de tabelas banco de dados da aplicação Agromobile. Fonte: Bessegato (2014). Analisando as tabelas, poderíamos ter colunas espaciais em algumas delas. O que facilitaria nas análises, consultas e tornaria mais ágil o processo de localização de propriedades. Como por exemplo, na tabela gleba, poderíamos ter as coordenadas que formam o seu perímetro e ainda também dividirmos ela por culturas. Enquanto fizermos as análises de usabilidade, daremos exemplos gráficos de como o procedimento poderia ser feito, para melhor entendimento do problema. Como neste exemplo, o qual demarcamos duas áreas, mas poderiam ser quantas fossem necessárias para a propriedade rural: Figura 31 - Mapa com uma área já demarcada e outra com os marcadores para demarcar. Fonte: Autoria Própria (2014). 47 Figura 32 - Mapa com duas áreas demarcadas. Fonte: Autoria Própria (2014). Com essa demarcações podemos determinar as áreas dentro de uma propriedade rural, dividi-las até mesmo por cultura ou para algum outro fim. Após as áreas salvas em um banco de dados, podemos começar a trabalhar com as funções geográficas do banco de dados. Para isso separamos alguns exemplos que poderiam ser úteis. 48 Usando como base os exemplos anteriores, executamos as seguintes funções e tivemos estes retornos: Quadro 3 - Retorno das funções, tendo como base o exemplo. Função executada ST_distance(área1,área2) Retorno 16456.314437265 medida em metros; Dividindo por mil, temos 16.456314437265 km. ST_Intersects(área1,área2) Falso ST_touches(área1,área2) Falso ST_overlaps(área1,área2) Falso ST_area(área1) 4463099.17989042 em metros; Dividindo por mil, temos 4463.09917989042 km ST_area(área2) 6547039.78456407 em metros; Dividindo por mil, temos 6547.03978456407 km Fonte: Autoria Própria (2014). Como podemos notar a vários tipos de analises que podem ser feitas dentro de um banco de dados geográfico. O fato de esses dados serem reais os torna uma grande ferramenta para obtenção de informações. Levando em consideração as tabelas já organizadas do banco de dados do Agromobile, poderíamos acrescentar campos de formato geográfico para futuramente realizar analises espaciais. Sendo assim, o processo de busca de propriedades e demonstrações de áreas seria muito menos oneroso. A criação de uma tabela com campos espaciais é parecido com o processo de criação de uma tabela com campos simples, o que muda é o uso 49 da função AddGeometryColumn.Seguindo a analise do banco de dados, podemos fazer as seguintes alterações: Tabela 'propriedade': Podemos acrescentar um campo geométrico do tipo geometry e marcar com um polygono todo o território da propriedade e da área que é arrendada, essas marcações iriam conter todas as divisões internas de terra. Tabela 'gleba': Podemos alterar a tabela para que possa ter um campo geométrico que seria inserido um polygono com os seus vértices e arestas. Tabela 'pontoamostra': Podemos criar um campo geometrico para ser inseridos informações do formato point, com coordenadas x e y que representem a sua real localização. Ainda podemos criar campos de formato geométricos para os casos em que as áreas de terras contenham mais de uma cultura. Com essas demarcações poderemos montar mapas das propriedades com suas divisões internas, tipos de cultura e aonde estão localizados os pontos de amostra. Além do fato de que se tratando de dados reais e com a ferramenta GIS, podemos gerenciar diversos tipos de informações, como por exemplo: Qual a distância de um ponto de amostra para o outro. Quantos pontos de amostra contem a área. A propriedade possui quantos km de área plantada com determinada cultura. A distância de uma área para a outra? A área total da propriedade? Aonde está localizado o ponto de amostra na área. Criar visualizações das áreas e pontos. 50 Essa são algumas das operações que podemos fazer com um banco de dados geográfico aplicado na arquitetura Agromobile. A partir disto podemos perceber de maneira clara a importância de uma aplicação SIG para o uso em uma aplicação com base em informações agrícolas nesse formato. 51 CONCLUSÃO Diante dos fatos aqui mencionados somos levados a acreditar que o banco de dados geográfico evoluiu muito com o passar dos anos e junto com essa evolução, tornou-se muito útil para vários tipos de aplicações. Quando os primeiros bancos de dados geográficos foram criados, a tecnologia existente não o tornava uma ferramenta capaz de realizar tantas análises e funções, por isso era muitas vezes substituído pelo método mais simples e antigo, através de mapas e informações impressas. Com sua capacidade de trabalhar com dados geográficos e dados normais que poderiam ser gravados em um banco de dados normal, se tornam uma alternativa para quem precisa de uma aplicação que necessite não somente gravar esses dados geográficos, mas também que realize consultas e análise espaciais. Para que fosse possível verificarmos estas informações, teríamos que ter um gerenciador de banco de dados que se disponibiliza essa capacidade de armazenamento, para isso escolhemos o Postgis. Por se tratar de uma extensão grátis do PostgreeSQL não gera custos para sua utilização e possui um vasto conjunto de funções e operações espaciais. Sendo assim, foi escolhido para a tarefa de armazenar os dados geográficos da aplicação Agromobile. A evolução tecnológica na área da agricultura proporciona aos proprietários de áreas rurais uma maior produtividade. Uma tecnologia em grande expansão é a agricultura de precisão, que nada mais é do que o manejo do solo integrado a informações tecnológicas. A aplicação Agromobile utiliza esse conceito e tem por objetivo fornecer informações pertinentes a área agrícola, como na aplicação de insumos, mapeamento da propriedade e todos os outros processos envolvidos na produção. Durante o desenvolvimento do trabalho, pode-se notar a complexidade de se usar dados espaciais. Para se trabalhar com dados espaciais devemos ter que estudar vários conceitos de como os dados são obtidos e como podem ser gravados para que sejam realmente úteis e que representem de uma forma consistente o mundo real. 52 Após o termino do trabalho pode-se notar uma grande evolução de conhecimentos, na área de informações geográficas, banco de dados e agricultura de precisão. Também se pode levar em consideração a contribuição deste trabalho para fins de estudo sobre a aplicação Agromobile. Com base neste trabalho desenvolvido, futuramente com o estudo de outras funções do Postgis que não foram abordadas, poderiam ser testadas para o uso na aplicação. Sendo assim mais funcionalidades seriam adicionadas agilizando a obtenção de informações oriundas do banco de dados geográfico. 53 REFERÊNCIAS BIBLIOGRÁFICAS ALVES, José António de Deus. Cartografia. 2006. Disponível em: < http://www.gd4caminhos.com/orientacao/cartografia/cartografia.html >. Acesso em: 15 Out. 2014. BESSEGATO, Junior. DISTRIBUIÇÃO DE SERVIÇOS DA ARQUITETURA AGROMOBILE UTILIZANDO WEBSERVICES. Universidade Regional do Noroeste do Estado do Rio Grande do Sul. 2014. BORELLI, Augusto. Árvores Binárias. 2013. Disponível em: < http://augustoborelli.xpg.uol.com.br/arvore_binaria.html >. Acesso em: 5 Nov. 2014. BURROUGH, P.A.; MCDONNELL, R.A. Principles of Geographical Information Systems. Oxford University Press. 1998 CÂMARA, Gilberto. SISTEMAS DE INFORMAÇÃO GEOGRÁFICA PARA APLICAÇÕES AMBIENTAIS E CADASTRAIS: UMA VISÃO GERAL. 2005.Disponível em: < http://www.dpi.inpe.br/geopro/trabalhos/analise.pdf >. Acesso em: 11 Out. 2014. ELMARSI, Ramez; NAVATHE, Shamkant B. (2005) Sistemas de Bancos de Dados. Addison-Wesley, 4a. edição em português. FARIA, Caroline. Sistema de Informações Geográficas. 2012. em: < Disponível http://www.infoescola.com/cartografia/sistema-de-informacoes- geograficas >. Acesso em: 15 Out. 2014. FARNER, Christian. Interview Questions: Database Indexes. 2008. Disponível em: < http://20bits.com/article/interview-questions-databaseindexes >. Acesso em: 5 Nov. 2014. FONTANEILLES, Gilvan. Linhas Imaginariase coordenadas geográficas. 2011. Disponível em: < http://geografalando.blogspot.com.br/2011/04/localizacao-linhasimaginarias.html >. Acesso em: 1 Nov. 2014. FROZZA, Ângelo. BANCO DE DADOS GEOGRÁFICOS E WEBMAPPING. 2013. Disponível em: < http://www.ifc- camboriu.edu.br/~frozza/2013.2/TSI11/TSI11-BDGeo-Aula004a-PostGIS.pdf >. Acesso em: 15 Out. 2014. 54 ________, Ângelo. Coluna | Sensoriamento remoto para iniciantes. 2013. Disponível em: < http://www.geoluislopes.com/2014/01/sensoriamento-remotopara-iniciantes.html >. Acesso em: 15 Out. 2014. GUERRA, Márcio Azevedo de Menezes. SGBD com Extensão Espacial e Sistemas de Geoinformação: Um Casamento Perfeito. 2011. Disponível em: < https://pt.scribd.com/doc/226108309/Artigo-Comparacao-SGBDs-GeoOracle-PostGIS-MySQL-1 >. Acesso em: 15 Out. 2014. IBGE. SISTEMAS DE REFERÊNCIA. 2012. Disponível em: < ftp://geoftp.ibge.gov.br/documentos/geodesia/sisref_2.pdf >. Acesso em: 15 Out. 2014. MAEDA, Vinicius. Sistemas de Informações Geográficas: aplicações e utilidades - Parte 01. 2014. Disponível em: < http://www.devmedia.com.br/sistemas-de-informacoes-geograficas-aplicacoese-utilidades-parte-01/7782 >. Acesso em: 15 Out. 2014. MANNINO, Michael V. Projeto, Desenvolvimento de Aplicações e Administração de Banco de Dados. 3.ed. Porto Alegre: McGraw-Hill, 2008. MICROSOFT. Projetando e implementando (Mecanismo de Banco de Dados). 2014. armazenamento Disponível espacial em: < http://technet.microsoft.com/pt-br/library/bb964712(v=sql.105).aspx >. Acesso em: 15 Out. 2014. MEDEIROS, Anderson Maciel Lima de. Banco de Dados Geográficos. 2009. Disponível em: < http://www.infoescola.com/geografia/dados-geograficos >. Acesso em: 7 Nov. 2014. _________, Anderson Maciel Lima de. Dados Geográficos. 2010. Disponível em: < https http://www.infoescola.com/geografia/dados-geograficos >. Acesso em: 15 Out. 2014. MOURA, Danieli Veleda. Uma análise da soberania na plataforma continental brasileira. 2014. Disponível em: < http://www.geoluislopes.com/2014/01/sensoriamento-remoto-parainiciantes.html >. Acesso em: 30 Out. 2014. NONATO, Luís Gustavo. Árvores B. 2005. Disponível em: < http://www.lcad.icmc.usp.br/~nonato/ED/B_arvore/btree.htm >. Acesso em: 15 Out. 2014. 55 NUNES, Christian. Coluna | Sensoriamento remoto para iniciantes. 2014. Disponível em: < http://www.geoluislopes.com/2014/01/sensoriamentoremoto-para-iniciantes.html >. Acesso em: 30 Out. 2014. OPENGEO Suite User Manual, Anderson Maciel Lima de. Geography data type. 2011. Disponível em: < http://suite.opengeo.org/opengeo- docs/dataadmin/pgBasics/geography.html >. Acesso em: 7 Nov. 2014. SEABRA, Felipe. Por dentro do Google Maps. 2013. Disponível em: < http://mundogeo.com/blog/2013/07/01/artigo-por-dentro-do-google-maps >. Acesso em: 15 Out. 2014. SILVA, George R. C. O uso do PostgreSQL e PostGIS no cadastro geocodificado de acidentes de trânsito. 2009. Disponível em: < http://pt.slideshare.net/georger.silva/o-uso-do-postgresql-e-postgis-no-cadastrogeocodificado-de-acidentes-de-trnsito >. Acesso em: 15 Out. 2014. YAMASHIRO, Seiti. Sistema de Referenciamento Espacial. 2010. Disponível em: < http://seiti.eti.br/blog/2010/sistema-de-referenciamento-espacial >. Acesso em: 25 Out. 2014. 56