quarta-feira, 29 de setembro de 2010

Geolocalização com google Maps


Olá pessoa hoje venho apresentar a vocês uma forma de geolocalização com o Google Maps é extremamente fácil de utilizar nesse exemplo estarei usando a API V3 o primeiro exemplo que vou mostrar tem as seguintes características ele tenta determinar o local do usuário por meio da propriedade navigator.geolocation do W3C primeiro e depois tenta o método do Google Gears e suspende a operação se nenhum dos métodos funcionar exibindo assim uma localização predeterminada.

Segue o script.

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script>
var initialLocation;
var brasilia = new google.maps.LatLng(-15.780111,-47.9291899);
var browserSupportFlag =  new Boolean();

function initialize() {
  var myOptions = {
    zoom: 15,
    mapTypeId: google.maps.MapTypeId.HYBRID
  };
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  
  // Try W3C Geolocation (Preferred)a
  if(navigator.geolocation) {
    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      map.setCenter(initialLocation);
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });
  // Try Google Gears Geolocation
  } else if (google.gears) {
    browserSupportFlag = true;
    var geo = google.gears.factory.create('beta.geolocation');
    geo.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
      map.setCenter(initialLocation);
    }, function() {
      handleNoGeoLocation(browserSupportFlag);
    });
  // Browser doesn't support Geolocation
  } else {
    browserSupportFlag = false;
    handleNoGeolocation(browserSupportFlag);
  }
  
  function handleNoGeolocation(errorFlag) {
    if (errorFlag == true) {
      alert("O serviço de geolocalização falhou.");
      initialLocation = brasilia;
    } else {
      alert("Seu browser não suporta geolocalização. Você verá Brasília.");
      initialLocation = brasilia;
    }
    map.setCenter(initialLocation);
  }
}
window.onload = function(){
                initialize();
}
</script>
<div id="map_canvas" style="width:600px; height:400px"></div>




Na terceira linha do segundo script vocês podem ver que eu coloquei uma latitude e uma longetude a qual leva até Brasília então caso o script não consiga pegar a localização do usuário ele determinará esse ponto como padrão na linha 5 depois da function initialize() eu indiquei o ID da div que vai receber as imagens do Google que no caso foi  map_canvas  esse é um padrão utilizado pelo Google.


Esse é o resultado produzido por esse script:








Vamos para o Segundo exemplo.
O segundo exemplo é basicamente o mesmo do primeiro  porem vamos ter identificar o endereço de ip do usuário enviar par o geoplugin e como retorno receberemos os dados do ip disponibilizado pelo mesmo segue o script.
Segue o Script.
<?php
$ip = $_SERVER['REMOTE_ADDR']; // pego o endereço de IP
ini_set("allow_url_fopen", 1);
$response = file_get_contents("http://www.geoplugin.net/php.gp?ip=$ip");
ini_set("allow_url_fopen", 0);
$array = var_export( unserialize ( $response  ), 1);
eval( '$array = '. $array .';');
$data  = new stdClass();
// latitude e longitude
$lt = $data->lat         = $array['geoplugin_latitude'];
$lg = $data->long        = $array['geoplugin_longitude'];
?>
<br>
<br>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  function initialize() {
    var latlng = new google.maps.LatLng(<?php echo $lt; ?>, <?php echo $lg; ?>);
    var myOptions = {
      zoom: 11,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.HYBRID
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }

</script>
</head>
<body>
<?php
echo "Você esta em :";
echo $data->city   = $array['geoplugin_city'];
echo ", ";
echo $data->region = $array['geoplugin_region'];
echo ", ";
echo $data->country     = $array['geoplugin_countryName'];
echo " - ";
echo $data->countrycode = $array['geoplugin_countryCode'];
?>

</body>
</head>
<body onLoad="initialize()">
 <div id="map_canvas" style="width:30%; height:30%"></div>
</body>
</html>


Esse é o resultado produzido por esse script


Bom pesso é isso ai qual quer dúvida ja sabem é so postar ai que vou estar fazendo o maximo para responder!

Nenhum comentário:

Postar um comentário

Related Posts with Thumbnails