WEBCODELOG

free codes, enjoy

Tag: ‘google’

Combinando APIs GeoLite City com Google Maps

without comments

Hello there!

Maravilha, eu só tinha o IP e então conseguiu saber o País daquele endereço de IP, não satisfeito consegui mais dados sobre ele, então surgiu o Estado, Cidade, Latitude e Longitude, e talvez o CEP, o Código de Área internacional, quem sabe?

É mais uma vez eu não estou satisfeito e agora vou fazer com que estes dados sejam exibidos no mapa, usando o Google Maps API. =) E provarei que é tão fácil quanto foram os outros exemplos.

Nós já sabemos o que ter em “mãos” para API GeoLite.

arquivos-geolitecity

Já para utilizar o Google Maps API você deve obter uma chave que permitirá fazer as consultas, veja mais aqui. O código descrito abaixo exibira uma mapa simples com alguns markets-point, mas é possível demonstrar o mapa de diversas maneiras, sabia mais.


<?php
require("geoipregionvars.php");
require("geoipcity.inc");

// Obtem o IP
$vIP     = $_SERVER['REMOTE_ADDR'];

// Abre o arquivo dat com o banco de dados
$giCity  = geoip_open("GeoLiteCity.dat",GEOIP_STANDARD);

echo $vIP;

// obtem o registro do
$record  = geoip_record_by_addr($giCity, $vIP);
?>

Perceba que no JavaScript abaixo a url do maps solicita através do parâmetro key o código gerado para sua conta, eu substitui o valor por <COLOQUE-SUA-KEY-AQUI>.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<!---// Mude o Key //-->
<script src="http://maps.google.com/maps?file=api&amp;amp;amp;amp;amp;amp;v=2&amp;amp;amp;amp;amp;amp;key=<coloque-SUA-KEY-AQUI>"
type="text/javascript"></script>
<script type="text/javascript">

function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("mapaGeoIP"));

// ---
// Aqui informamos a Latitude e Longitude do IP
//
map.setCenter(new GLatLng(<?= $record->latitude ?>, <?= $record->longitude ?>), 13);

// Adicionado 10 lugares (markets) randômicos próximo a localidade
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 15; i++) {
var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random());
map.addOverlay(new GMarker(point));
}
}
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="mapaGeoIP" style="width: 600px; height: 400px"></div>
</body>
</html>

google_maps1

Este é um exercício muito interessante, veja que legal alterando o endereço de IP, para isto vá ao prompt de comando no Windows e digite, por exemplo:

ping bb.com
ping google.com
ping cnn.com

Namastê.

Written by Luciano

janeiro 18th, 2009 at 8:35 pm

Posted in Ferramentas, Programação

Tagged with , , ,