por Miguel Fornari

Retomando o artigo anterior, em um Sistema de Informações Geográficas (SIG) é necessário que o banco de dados suporte o armazenamento de dados geográficos e possua operações que facilite recuperar os dados. Em todas as versões do Oracle, repito, todas, esta disponível o Oracle Locator. Um conjunto de tipos, procedimentos  e funções está definido no esquema MDSYS.

Tipo SDO_GEOMETRY

O tipo fundamental é o SDO_GEOMETRY, que pode ser definido para qualquer atributo em uma tabela. Por exemplo, na tabela de clientes, o endereço pode ser declarado como sendo deste tipo, e não um Varchar. Num atributo SDO_GEOMETRY, pode-se manter diferentes formas geométricas: pontos, linhas, polígonos ou círculos. O endereço do cliente, pode ser registrado como um ponto no mapa. Mas, uma aplicação para a prefeitura controlar a ocupação de terrenos, certamente teremos um polígono. A figura abaixo, uma cortesia da Oracle, ilustra as várias possibilidades.


08-11pic01.JPG

Coordenadas Geográficas

Seja qual for a figura geométrica, ela é formada por pontos, ou, tecnicamente, coordenadas. A forma mais comum de nos referirmos a coordenadas são longitude/latitude, expressas em graus, minutos e segundos. Este é apenas um dos muitos sistemas de coordenadas geográficas existentes. Lat/Long embora comum, pode não ser o sistema mais adequado, por dois problemas: precisão e cálculos.

Precisão é a margem de erro nas medições. Imagine uma prefeitura cobrando imposto territorial a mais porque pensa que seu terreno tem 1 metro a mais que a realidade. Ou então, autorizando abrir um buraco onde passa o cabo de fibra ótica. Lá se foi nossa rede de dados. Portanto, não pode, a precisão tem que ser maior, neste caso, centímetros.

Quanto aos cálculos, tente calcular a área do terreno, em metros quadrados, a partir de medições em graus. Haja matemática e geografia, muito além do que é comum aprendermos. Por isso, em SIG, é necessário outras formas de representar as coordenadas, sendo a UTM (Universal Transversa de Mercator), um sistema métrico, muito comum. Oracle Locator suporta vários tipos de coordenadas, a gosto do usuário. Na verdade, a lista tem mais de 4000 diferentes sistemas de coordenadas. E ainda é possível acrescentar um sistema particular, como, por exemplo, faz a Prefeitura de Porto Alegre.

Operações

A recuperação de informações também pode ser realizada de maneira simples. Obviamente, um simples SELECT basta para buscar o atributo na tabela. Além disso, há um grande conjunto de operações importantes, como:

 

-         cálculos de distância, área e perímetro. Permitem, por exemplo, calcular a área de um terreno.

-         verificar se dois objetos geométricos possuem intersecção, estão lado a lado ou um esta contido no outro. Permitem verificar as estradas que cruzam um rio; ou antenas de telefonia celular ao lado de escolas.

-         buscar uma relação dos objetos mais próximos, como localizar as cinco escolas mais próximas da casa de uma pessoa, ou o hospital mais próximo de um acidente.

Conclusão

Por fim, é importante esclarecer que há um pacote adicional, chamado Oracle Spatial, que possui um número muito maior de operações, além de suportar o armazenamento de imagens de satélite e redes inteiras, como a rede de ruas de uma cidade. Para buscar mais informações sobre estes produtos, o leitor pode acessar diretamente o site da Oracle, no endereço http://www.oracle.com/technology/products/spatial/index.html. No futuro, devo escrever um artigo sobre o desenhador de mapas da Oracle, chamado Mapviewer. Afinal, informação geográfica é para ser incluída em mapas, ninguém vai ler coordenadas.

No próximo artigo, daqui há uma semana, escrevo sobre as novidades surgidas no ACM GIS, o simpósio mais importante da área de SIG, que ocorrerá dias 10 e 11/Novembro. Até lá.