jump to navigation

Exibindo dados georeferenciados com o Google Earth Março 24, 2008

Posted by aclaudio in Sem-categoria.
Tags: , , ,
add a comment

Alguns anos atrás quando ouviamos termos como: GIS (Geografic Information Systems), geoprocessamento ou georeferênciamento, vinha a nossa mente aplicativos tão especialistas que muitas vezes pareciam intângiveis. Por conta disso, a utilização de dados georeferênciados, ficava restrita aos orgãos ligados e ciências da natureza, como: Geologia, Agronomia, Engenharia de Minas, etc.

Com o avanço das tecnologias de imagens por satélite, o mundo viu nascer um tipo de aplicações geográficas com um foco diferente das existentes. São aplicações voltadas para o usuario/desenvolvedor de sistemas comerciais, ou sem qualquer fim científico. São as Virtual Globes.

O que são “Virtual Globes”?

Tenho certeza que você já utilizou uma mesmo sem saber. Essas aplicações baseiam-se em uma projeção 3D da superficio da terra, utilizando para isso principalmente imagens de satélite.

Alguns exemplos de Virtual Globes são:

  • Visual Earth, distribuída pela Microsoft;
  • NASA World Wind, distribuída pala NASA;
  • ARCGlobe, lançada pela ISRI;
  • Google Earth, mantida pela Google.

Com certeza você já utilizou uma destas ferramentas.

Por razões obvias escolhemos para nossa demonstração o Google Earth, (quer saber as razões? experimente as outras ferramentas citadas).

O Google Earth, tem sido amplamente utilizado por pessoas “comuns” com os objetivos mais variados, desde o simples prazer de localizar a sua casa, faculdade ou local de trabalho no mapa da terra, até a tarefa de exibir informações coletadas através de dispositivos GPS.

Ele é distribuído em 4 versões: Free, Plus, Professional e Enterprise.

Segunda a propria empresa que fornece o programa, ao contrário do que tem se espalhado por ai, não existe diferença na qualidade das imagens entre as difeirentes versões, apenas algumas funcionalidades vão sendo acrescentadas a cada nível de serviço.

Para facilitar a exibição de dados no GE, a empresa criou uma especificação de arquivo chamada KML.

KML é um formato de dados baseado no GML, um formato aberto criado para a troca de dados geográficos pela internet. Ambos são na verdade extensões da linguagem XML.

Portanto, para exibir quaisquer dados no GE, basta fornecer ao mesmo um arquivo no formato KML. O que permite a exibição de:

  • Dados geográficos – Pontos, Linhas e Poligonos.
  • Imagens – Ex: Mapas em formato raster.
  • Dados em formato HTML.

Para conhecer um pouco mais sobre a especificação do formato KML visite: http://code.google.com/apis/kml/documentation/

A seguir um exemplo de como exibir dados no GE.

Por razões pessoais o exemplo será escrito em linguagem C# usando o ASP.Net. Mas, o mesmo principio pode ser aplicado em qualquer linguagem que permita a construção de páginas dinâmicas (jsp, php, asp, cgi) ou Web Services.

1 – Criando a página que irá fornecer dados no formato KML.

Na realidade o que foi feito aqui, não vai além de substituir os dados html da operação de response por dados no formato KML. A seguir o código da página.


protected void Page_Load(object sender, EventArgs e)
{
// primeiramente limpamos o objeto request
Response.Clear();
// agora é informar ao cliente que o formato desse arquivo é na verdade o formato KML
Response.ContentType = ''application/vnd.google-earth.kml+xml'';
//aqui é apenas um wrapper que facilita a construção do arquivo xml.
XmlTextWriter xml = new XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8);
xml.WriteStartDocument();
//a tag principal do documento KML
xml.WriteStartElement("Document"); //
xml.WriteElementString("name", "Arquivo KML");
xml.WriteElementString("description", "Este KML é um exemplo de como podemos enviar dados georeferenciados ao Google Earth");
//a tag Placemark significa que queremos exibir um local especifico no mapa, esse local é representado por um
//ponto (latitude, longitude).
xml.WriteStartElement("Placemark");//
//o título do placemark
xml.WriteElementString("name", "Esconderijo do Bin Laden");
xml.WriteElementString("description", "Uma descrição em linguagem HTML.
Praticamente todas as tags HTML são aceitas.");
//aqui é a referência geográfica do placemark, são as coordenadas latitude e longitude, mais a elevação.
xml.WriteStartElement("Point"); //
xml.WriteElementString("coordinates", "32.544444,30.489800,0");
//apartir daqui estamos fechando as tags.
xml.WriteEndElement();// xml.WriteEndElement();// xml.WriteEndElement();//
//fechando o documento.
xml.WriteEndDocument();
xml.Flush();
//pronto agora é só devolve-lo ao cliente, em nosso caso o Google Earth.
Response.End();
}

Quando a página é executada o resultado é um arquivo no formato XML/KML, se você possui o GE instalado em sua máquina ele automaticamente será aberto e o seu arquivo carregado para exibição.

2 – Testando

Agora basta abrir seu navegador de internet preferido e chamar a página.

Para ver o resultado do código acima acesse o link: http://aspspider.info/aclaraujo/getkml.aspx

Claro que este exemplo não passa de um “hello word” sobre exibição de dados no GE, mas, serve como ponto de partida. Agora aconselho você que leu este post até aqui a esticar um pouco mais e ir ao site do GE, e estudar a especificação completa do KML, inclusive lá existem alguns exemplos de links que fornecem dados para a exibição no GE.

Bom, espero que este post tenha servido ao menos como “peteleco” para aguçar sua curiosidade sobre o assunto. Nos próximos post mostrarei o uso de web services, e como é possível interagir com o GE no momento da visualização dos dados.

Até a próxima.