Artigo SQL Magazine 64 - Novo datatype do SQL Server 2008 – Spatial Data

A proposta deste artigo é apresentar uma forma simples e bem prática da criação de uma aplicação Web que utiliza o SQL Server 2008 como base de dados e o Virtual Earth da Microsoft como sendo uma aplicação de terceiro para interação.

Esse artigo faz parte da revista SQL Magazine edição 64. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse editorial em PDF

Novo datatype do SQL Server 2008 – Spatial Data

 

Uma das coisas que mais estão em evidência hoje em dia é o sincronismo de informações em tempo real dos nossos sistemas com aplicativos de terceiros. Uma prova disso é a necessidade cada vez maior de aplicativos/soluções baseadas em soluções web. Com o advento da Web 2.0, a maioria das empresas está solicitando que os aplicativos interajam com estas soluções externas para coletar informações importantes para o bom andamento do trabalho. A proposta deste artigo é apresentar uma forma simples e bem prática da criação de uma aplicação Web que utiliza o SQL Server 2008 como base de dados e o Virtual Earth da Microsoft como sendo uma aplicação de terceiro para interação.

 

Relembrando o que é Latitude e Longitude

No SQL Server 2008, foram incorporados diversos novos tipos de dados, e um dos segmentos são os Spatial Datas (Dados Espaciais). Com esses tipos de dados é possível trabalhar com dados geográficos, que são baseados em um ponto de coordenada de Latitude e Longitude, e com dados geométricos que são baseados em no mínimo dois pontos geográficos para traçar uma linha ou com três ou mais pontos para traçar um polígono.

Quando pensamos em encontrar algum ponto geográfico no mapa geodésico (em formato oval, como é o globo terrestre) precisamos encontrar este ponto através da Latitude e da Longitude. Para isso, é preciso voltar um pouco até o segundo-grau quando aprendemos como encontrar essa informação. Para facilitar a lembrança, vamos analisar a Figura 1 que explica como é gerada essa informação.

 

Figura 1. Linhas imaginárias de Latitude e Longitude

 

Na Figura 1, é possível visualizar diversas linhas verticais e horizontais cinzas, mas o que nos interessa são as linhas vermelha e preta centrais. A linha vermelha é a linha imaginária que representa a Longitude. Ela e suas paralelas são verticais e seguem ao meridiano de Greenwich (que está representado em vermelho), que por sua vez separa a Terra em hemisfério oriental (leste) e hemisfério ocidental (oeste). Os pontos de Longitudes chegam a no máximo 180 graus para cada lado, que somando ambos os hemisférios completam os 360 graus do globo.

Já a linha de cor preta representa a Latitude. Esta linha e suas paralelas são horizontais e acompanham a linha imaginária do Equador (que está de preto na Figura 1). Esta linha divide o planeta Terra em norte e sul, seus graus vão até no máximo 90 para cada lado, para somar e completar os 180 graus que são necessários para gerar os pontos e cobrir completamente o globo terrestre.

Para gerar os pontos de Latitude e Longitude, é necessário encontrar um ponto comum entre as duas coordenadas, chamado de ponto de colisão. Na Figura 1 o ponto comum entre a Latitude e a Longitude está em amarelo e indicando o ponto Zero-Zero. Para entender melhor como são gerados estes pontos, acompanha na Figura 2 que é explicado com mais detalhes a geração dos pontos de colisão das coordenadas.

 

Figura 2. Geração de um ponto de Latitude e Longitude

 

Para a geração de um ponto, são necessários três passos. Primeiro é traçado uma linha do centro da Terra até o ponto Zero-Zero, que é o cruzamento entre o Meridiano de Greenwich e a Linha do Equador. O segundo passo é levar a linha de Longitude até o ponto em Leste (direita) ou Oeste (esquerda). O terceiro passo é encontrar o ponto na Latitude, elevando a localização para Norte (cima) ou para Sul (baixo) da linha do equador. Estes pontos que foram criados geram graus de abertura de um raio para Longitude e Latitude, e eles que darão origem ao ponto localizado. No exemplo da Figura 2, foi aberto 60° pra Oeste e 45° para Norte, chegando até Sydney. O ponto azul no centro do globo indica o centro da Terra, a vértice vermelha indica a Longitude aberta com 60°, a vértice amarela indica a Latitude aberta com 45° e por final o ponto verde indica o Ponto Geográfico de Latitude e Longitude, representado por 60ºO e 45ºN.

No SQL Server 2008, o DataType Geography não armazena informações de direção (Norte, Sul, Leste e Oeste), a solução que a Microsoft encontrou para saber a direção que o ponto está sendo traçado é a utilização de valores positivos e negativos. Para traçar um ponto de Longitude para Oeste, o SQL Server armazenará este ponto negativo, e quando a Longitude for para Leste, será gravado o valor positivo. Para a Latitude segue o mesmo principio, quando o ponto vai para Norte o SQL armazena o valor positivo e quando vai para o Sul o armazenamento é negativo. Voltando ao exemplo da Figura 2, o SQL Server registraria os valores -60 e 45.

 

Os dados geográficos no SQL Server 2008" [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados