Exibindo dados georeferenciados com o Google Earth Março 24, 2008
Posted by aclaudio in Sem-categoria.Tags: c#, coordinates, GIS, google earth
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.
SaaS “uma breve introdução.” Fevereiro 22, 2008
Posted by aclaudio in Sem-categoria.Tags: desenvolvimento de sistemas, saas, software
1 comment so far
Curiosamente resolvi iniciar este blog com um post falando sobre SaaS. Mas, o que vem a ser um SaaS?
O termo SaaS é um acrônimo para a expressão em inglês “Software As a Service”, ou em bom português (do brasil) “Software como um serviço”.
Antes de iniciar uma explicação um pouco mais detalhada sobre o SaaS, é importante esclareçer algo que vem confundindo muita gente por ai.
-SaaS não é a mesma coisa que SOA!
O termo SOA significa “arquitetura orientada a serviço” e como em desenvolvimento de sistemas o termo “arquitetura” é normalmente usado para descrever uma parte da etapa de Projeto, SOA esta mais ligada ao “projeto” do sistema, enquanto SaaS extrapola essa realidade, no momento em que trata assuntos como: licenciamento, manutenção, implantação e etc.
Entretanto, é comum que SOA seja utilizada no projeto de um SaaS.
Escrever um SaaS é elaborar, projetar e implementar um software que tenha como principal ambiente de execução a internet, mais precisamente os navegadores de páginas. Com o forte crescimento de tecnologias para melhorar as interação dos usuarios nas páginas www, essa realidade viu-se cada dia mais próxima e à mão dos desenvolvedores preocupados em ampliar o alcançe dos seus sistemas.
A ideia do SaaS é contruir um sistema e ofereçe-lo como um serviço, ou seja, o cliente não precisa necessariamente pagar pela compra de um sistema, ele apenas estará adquirindo o direito de usar um serviço, que em sua essência é um software como tantos outros existentes. Algunas vantagens podem ser listadas na utilização de um SaaS, entre elas:
-
Estrutura de TI simplificada – O cliente do SaaS não precisa preocupar-se com uma estrutura de TI mais complexa do que a instalação de uma conexão de internet banda larga. O problema da estrutura é resolvido por quem ofereçe o SaaS.
-
Portabilidade – Por tratar-se de um ambiente web o software ou serviço poderá ser acessado por qualquer computador com acesso a internet e um navegador instalado.
-
Baixo custo de licenciamento – Com a estrutura de TI compartilhada entre diversos clientes, os custos podem ser reduzidos oferecendo assim um serviço mais acessível a pequenas e médias empresas. Alias, o principal foco dos SaaS. (Iremos discutir um pouco mais esse assunto em um post específico “SaaS e a LongTail”, aguardem!).
-
Propaganda e distribuição – A distribuição do serviço, em muitos dispensa a criação da “área comercial” para a venda e distribuição do sistema. Estratégias de marketing como cadastros em ferramentas de busca, anuncios em outros SaaS, ou sites específicos, são ferramentas que oferecem ao software sua distribuíção em escala.
Bom, para evitar a doce ilusão de que “tudo são flores” alguns aspectos antes menos relevantes, ao SaaS tornam-se em alguns casos “cruciais”. Esses aspectos estão relacionados a questões sobre: Escalabilidade, Segurança e Usabilidade.
Não abordarei aqui muitos detalhes sobre as questões citadas, mais uma vez isso ficará para posts vindouros.
Escalabilidade – É preciso estar praparado para que a sua estrutura suporte um crecimento “exponencial” de usuarios, essa previsão pode parecer otimista demais, entretanto, já foi experimentada na prática por empresas provedoras de SaaS.
Segurança e Privacidade – Como a estrutura de TI é compartilhada pelos clientes do SaaS, (eles nem precisavam saber disso!) algumas empresas resistem em alimentar um sistema com suas informações de negocios, tais como: preços de produtos, carteira de clientes e etc.
Usabilidade - Para evitar aquelas indesejadas e em muitos casos “inviáveis” visitinhas do técnico a fim de explica o funcionamento do sistema, o mesmo terá que apresentar um alto grau de usabilidade, e ainda permitir uma boa customização do serviço.
Enfim, existem diversos estudos e propostas de soluções para as questões citadas. Modelos de banco de dados flexiveis, arquiteturas distribuídas, padrões de interface.
E como falei antes, este post não tem a humana pretenção de esgotar o tema.
Espero que ao menos tenha servido para aguçar a sua curiosidade sobre o tema.
Até o próximo!
Para saber um pouco mais sobre SaaS visite:
Exemplos de SaaS: