Como buscar informações detalhadas de um endereço como a Latitude e Longitude com a API do Google Maps

Este é um exemplo de extração de dados da geocodificação utilizando a API do Google Maps

Este é um exemplo de extração de dados da geocodificação utilizando a API do Google Maps
Este é um exemplo de extração de dados da geocodificação utilizando a API do Google Maps

Fala galerá, esta API do Google Maps é muito boa quando você precisa trabalhar com mapas, endereços, ceps, etc. Vou mostrar para vocês um exemplo de código que traz informações detalhadas sobre um endereço.

Vou utilizar como exemplo o endereço:

Rua Vergueiro, 1000 (é o endereço do Centro Cultural de São Paulo que fica na Vergueiro)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Buscar Informações detalhadas do endereço</title>
<script src="<a href="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAh-4-WXT7vryB4zWcSDKIThSuBLcACnbYAIBxS9eHfruCpUv1BBRZi-GSNoVlnTofbgShokT-TgG8BA">http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAh-4-WXT7vryB4zWcSDKIThSuBLcACnbYAIBxS9eHfruCpUv1BBRZi-GSNoVlnTofbgShokT-TgG8BA</a>" type="text/javascript"></script>
<script type="text/javascript">
var map = null;
var geocoder = null;

function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("mapa"));
map.setCenter(new GLatLng(34, 0), 1);
geocoder = new GClientGeocoder();
}
}

function showAddress(address) {
if (geocoder) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " não encontrado");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address);
}
}
);
}
}

// addAddressToMap() é chamado quando o geocoder retorna uma
// resposta.  Ele adiciona um marcador no mapa com uma janela aberta
// mostrando uma boa formatação do endereço, o código do país, latitude, longitude e o CEP.
function addAddressToMap(response) {
map.clearOverlays();
if (!response || response.Status.code != 200) {
alert("Desculpe, não fomos capazes de geocodificar o endereço");
} else {
place = response.Placemark[0];
point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(place.address + '<br>' +
'<b>Código do páis:</b> ' + place.AddressDetails.Country.CountryNameCode + '<br>' +
'<b>Latitude:</b>' + place.Point.coordinates[1] + '<br>' +
'<b>Longitude:</b>' + place.Point.coordinates[0] + '<br>' +
'<b>CEP:</b>' + place.AddressDetails.Country.AdministrativeArea.Locality.PostalCode.PostalCodeNumber);
map.setCenter(point, 13);
}
}

// showLocation() é chamado quando você clica no botão de buscar
// no formulario.
function showLocation() {
var address = document.getElementById('address').value;
geocoder.getLocations(address, addAddressToMap);
}
</script>
</head>

<body onload="initialize()" onunload="GUnload()">
<form action="#" onsubmit="showLocation(); return false">
<p>
<input type="text" size="60" name="address" id="address" value="Rua Vergueiro, 1000" />
<input type="submit" value="Go!" />
</p>
<div id="mapa" style="width: 500px; height: 300px"></div>
</form>
</body>
</html>

Foi testado e está funcionando, você só precisa trocar a key de uso da API do Google Maps acessando este link: http://code.google.com/intl/pt-BR/apis/maps/signup.html

Para mais detalhes deste recurso da API do Google Maps, veja este link:

http://code.google.com/intl/pt-BR/apis/maps/documentation/services.html#Geocoding_Structured

Abraços!

O 13º EWD

Falo sobre o evento EWD na sua 13ª edição.

Fui ao 13º EWD (Encontro de WebDesigners) para conferir o que iria rolar neste evento.

Para quem não sabe, o EWD é um evento anual focado para webdesigners de todo o Brasil, organizado pela Arteccom. Apesar de eu sair sem nenhuma premiação, além de spams de propagandas dos patrocinadores, gostei muito do evento, os palestrantes são muito bons e apresentaram temas bastante interessantes para quem trabalha na área de web.

Os palestrantes foram, Luli Radfaher com o tema “Mecânica dos fluidos: Design no ambiente elástico”, Luis Marcelo Mendes da Tecnopop com o tema “Como sobreviver na selva”  e Raphael Vasconcelos da AgênciaClick com o tema “Comunicação interativa”.

Ótimos palestrantes, mas na minha opinião, quem se destacou foi o Luis Marcelo Mendes, mostrando ao público como ser um “selvagem” da web e saber lidar com todas as merdas do dia-a-dia quando você arrisca abrir sua própria agência.

Houve também uma palestra virtual com Ricardo Accioly da NOIX que, felizmente, o vídeo travou e sua mensagem sobre um tipo de sistema que 99% dos programadores odeiam, não pode ser completada: CMS Joomla.

O evento cresceu muito nessa edição, e provavelmente terá grandes mudanças e melhorias em 2009. Eu recomendo a todos.

Abraços!