Ter mapas do Google Maps em seu site é fácil usando a API do Google Maps, aqui neste exemplo criaremos um formulário onde o usuário digitará o endereço completo, pelo método POST enviaremos o endereço para uma função PHP que será responsável por retornar a latitude, longitude e zoom, com o javascript criaremos o mapa.
Primeiramente devemos entrar neste link http://code.google.com/intl/pt-BR/apis/maps/signup.html para obter a chave da API. Guarde-a pois usaremos mais adiante.
Crie um formulário HTML assim:
<html>
<head><title>Usando API do Google Maps com PHP</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=DIGITE AQUI SUA CHAVE" type="text/javascript"></script>
</head>
<body>
<form method="post" action="g_map.php">
Endereço: <input type="text" size="50" name="endereco"/><br/>
Cidade: <input type="text" size="50" name="cidade"/><br/>
UF: <input type="text" size="05" name="uf"/><br/>
<input type="submit" value="Gerar Mapa"/>
</form>
</body>
</html>
Salve o arquivo como GMAPS.html
Agora crie o arquivo g_map.php e insira nele o seguinte código:
<?php
class gMaps {
private $mapsHost = 'maps.google.com';
public $mapsKey ='DIGITE AQUI SUA CHAVE ';/
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;
} 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;
}
return array('lat' => $latitude, 'lon' => $longitude, 'zoom' => $zoom, 'endereco' => $endereco);
}
}
$end = $_POST["endereco"];
$cidade = $_POST["cidade"];
$uf = $_POST["uf"];
$endereco = $end.", ".$cidade.", ".$uf;
$gmaps = new gMaps('DIGITE AQUI SUA CHAVE');
$dados = $gmaps->geolocal($endereco);
$lat = $dados['lat'];
$lon = $dados['lon'];
$zoom = $dados['zoom'];
?>
<html>
<head><title>Google MAPS com PHP<title><head>
<body>
<div id="googleMap" width="400px" height="400px"></div>
<script type="text/javascript">
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("googleMap"));
var lat = <?php echo"$lat"; ?>; // Latitude do marcador
var lon = <?php echo"$lon"; ?>; // Longitude do marcador
var zoom = 16; // Zoom
map.addControl(new GMapTypeControl());
map.addControl(new GLargeMapControl());
map.addControl(new GOverviewMapControl());
map.removeMapType(G_HYBRID_MAP);
map.setCenter(new GLatLng(lat,lon),zoom);
var marker = new GMarker(new GLatLng(lat,lon));
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("<?php echo"$endereco";?>");
});
map.addOverlay(marker);
map.setCenter(point, zoom);
}
</script>
</body>
</html>
Salve o arquivo e chame o GMAPS.html pelo browser e digite algum endereço real para ver como ficou, o javascript coleta os dados enviados pela função PHP e cria o mapa carregando na div googleMap, com o tempo você saberá pegar o endereço em uma base MySQL e criar mapas. Espero que sirva para vocês. Abs...
Assinar:
Postar comentários (Atom)
Bom dia, amigo,
ResponderExcluirTentei usar essa ideia, porem o mapa nao e gerado!!!
( ja esta num servidor online )
O que sera que pode ta dando problema???
http://www.nomucho.com.br/mapa/mapa.html
( Ah.. tem um erro na linha 5 do php!! - uma / )
FlowW!!
Valeu cara!
ResponderExcluirPara mim tb não apareceu o mapa... mas consegui pegar as coordenadas que era o que eu estava atraz!!
Abraços