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:
- Exibindo mapas no seu site – Google Maps + PHP – Parte 2
- Resultados de busca do Google no seu site
- Pegando dados do Google Analytics via PHP
- Criando um sistema de logins com classe no PHP – Parte 1
- Criando um sistema de logins com classe no PHP – Parte 3
Postado em Artigos, PHP, Tutoriais
Com as tags API, Artigo, Artigos, Brasil, Busca, Classe, Código, cURL, File, Formulário, Funcionalidade, GMAK, Google, Google Maps, Google Maps API, HTML, PHP, POO, Rio de Janeiro, Scripts, Tutoriais, Tutorial, URL
Escrito por Thiago Belem
Gostou desse artigo?
Não se esqueça de assinar o RSS e divulgue-o para o mundo:

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
@Leo
Você está usando o script corretamente? Criou sua GMAK?
Veja aqui um teste que fiz usando minha GMAK e funcionou..
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’);
@Milton
“Não funciona” é diferente de “Não consegui fazer funcionar”… né?
Por favor, copie aqui da linha 39 até a linha 49.
Então Tiago, põe um link aê no final dos artigos :0)
@ntdeocle
Link do quê? O.o
Olá, tem como eu colocar a logomarca de um cliente na marcacao do endereço? e como faço isso? vc pode me ajudaR?
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?
Oi Thiago! Mais uma vez ótimo tutorial….impressionante…parabéns!
Mto bacana a dica