Publicidade (Anuncie Aqui)

Buscando a Latitude e Longitude de um endereço – Google Maps + PHP – Parte 1

Buscando a Latitude e Longitude de um endereço – Google Maps + PHP – Parte 1

Fala pessoal, hoje eu vou falar sobre uma funcionalidade que sempre tive interesse em desenvolver mas nunca parei para estudar sobre: Google Maps + PHP.

Vamos fazer um código que usa as APIs do Google Maps para buscar a latitude e longitude de um endereço qualquer, por exemplo: “Av. Brasil, 3014 – Rio de Janeiro, RJ“.

É necessário saber a latitude e longitude de um endereço para exibir um mapinha do Google Maps no seu site… O que será ensinado na parte 2 desse artigo.

Começando pelo começo

Antes de mais nada você, meu amigo desenvolvedor, precisa de uma Google Maps API Key (GMAK) que é um código que te permite usar as APIs do Google Maps e te identifica perante ao Google. Para criar a sua GMAK é só entrar nesse endereço e preencher o formulário.

Tendo sua GMAK em mãos, vamos ver a classe que usaremos para esse e os próximos tutoriais:

/**
 * gMaps Class
 *
 * Pega as informações de latitude, longitude e zoom de um endereço usando a API do Google Maps
 *
 * @author Thiago Belem <contato@thiagobelem.net>
 */
class gMaps {
	// Host do GoogleMaps
	private $mapsHost = 'maps.google.com';
	// Sua Google Maps API Key
	public $mapsKey = '';

	function __construct($key = null) {
		if (!is_null($key)) {
			$this->mapsKey = $key;
		}
	}

	function carregaUrl($url) {
		if (function_exists('curl_init')) {
			$cURL = curl_init($url);
			curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($cURL, CURLOPT_FOLLOWLOCATION, true);
			$resultado = curl_exec($cURL);
			curl_close($cURL);
		} else {
			$resultado = file_get_contents($url);
		}

		if (!$resultado) {
			return false;
			//trigger_error('Não foi possível carregar o endereço: <strong>' . $url . '</strong>');
		} else {
			return $resultado;
		}
	}

	function geoLocal($endereco) {
		$url = 'http://'. $this->mapsHost .'/maps/geo?output=csv&key='. $this->mapsKey .'&q='. urlencode($endereco);
		$dados = $this->carregaUrl($url);
		list($status, $zoom, $latitude, $longitude) = explode(',', $dados);
		if ($status != 200) {
			return false;
			//trigger_error('Não foi possível carregar o endereço <strong>"'.$endereco.'"</strong>, código de resposta: ' . $status);
		}
		return array('lat' => $latitude, 'lon' => $longitude, 'zoom' => $zoom, 'endereco' => $endereco);
	}
}

O uso dela é ridiculamente simples:

<?php
// Instancia a classe
$gmaps = new gMaps('SUA GMAK AQUI');

// Pega os dados (latitude, longitude e zoom) do endereço:
$endereco = 'Av. Brasil, 1453, Rio de Janeiro, RJ';
$dados = $gmaps->geolocal($endereco);

// Exibe os dados encontrados:
print_r($dados);
?>

Com isso já temos todas as informações necessárias para exibir um mapinha do GoogleMaps com o endereço marcado, o que faremos no próximo tutorial. :)

Parte 2: Exibindo mapas no seu site – Google Maps + PHP – Parte 2

Um grande abraço a todos!

Você também vai gostar de ler:

Postado em Artigos, PHP, Tutoriais

Com as tags , , , , , , , , , , , , , , , , , , , , , ,

Escrito por Thiago Belem

Gostou desse artigo?

Não se esqueça de assinar o RSS e divulgue-o para o mundo:

11 Comentários ou trackbacks

  1. leo disse:

    Muito bom o artigo, estou aplicando ele porém ele exibe um erro de js muito estranho “point não está definido”realmente ele é chamado no final da funcao mas não encontrei onde vc define ele ?

    aguardo um retorno, parabens pelo otimo blog vou divulgar pra todos amigos

  2. milton disse:

    não funciona!!! dá erro syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in test1.php on line 44

    line 44 é:
    $gmaps = new gMaps(‘ABQIAAAAx7fo1WMRXISKhQaLGEqrMNLPKtDveUrTsd4KnS8UxRs-9Bcd-zaFPHUT7g7LTIw3BdsOg’);

  3. ntdeocle disse:

    Então Tiago, põe um link aê no final dos artigos :0)

  4. Betinho silva disse:

    Olá, tem como eu colocar a logomarca de um cliente na marcacao do endereço? e como faço isso? vc pode me ajudaR?

  5. Micael Melo disse:

    Olá Thiago. Parabens pelo seu blog. Acesso diariamente como fonte de recursos.

    Tenho uma dúvida em relação ao código acima:
    Como faço para adicionar mais de um endereço nesse mapa que vou exibir e que fiquem com marcadores personalizados?

  6. Rubia disse:

    Oi Thiago! Mais uma vez ótimo tutorial….impressionante…parabéns!

  7. Thiago disse:

    Mto bacana a dica

Deixe um comentário

XHTML: Você pode usar essas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Atenção: O seu comentário precisará ser aprovado antes de ser publicado

Trackbacks e Pings

  1. [...] Essa é a continuação de um tutorial da semana passada: Buscando a Latitude e Longitude de um endereço – Google Maps + PHP – Parte 1 [...]