ccc

Maps: Obtener datos geográficos a partir de una IP

Obtener datos geográficos a partir de una IP:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.ipdata.co"); // manda nuestra IP
// Si queremos pasarle nosotros una IP en concreta sería:
curl_setopt($ch, CURLOPT_URL, "https://api.ipdata.co/213.229.183.42");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Accept: application/json"
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);

Te proporciona la ciudad, región, país, continente, latitud, longitud, bandera del país, etc

Si quisieramos obtener el nombre de la calle debe hacerse con este otro código a partir de la longitud y latitud dada:

Debes crearte en la console de Google una API Key y habilitar la API de Google Maps

<script async defer
    src="https://maps.googleapis.com/maps/api/js?key=AIzaXXXX_62-Lv2lfaA4IIekpX_KWGNj-5nJy0&callback=initMap">
    </script>

<div id="datos"></div>

<script>
function initMap() {
var geocoder = new google.maps.Geocoder;
coordenadas = "40.4086,-3.6922";
var latlngStr = coordenadas.split(',', 2);
var latlng = {lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1])};

geocoder.geocode({'location': latlng}, function(results, status) {
  if (status === 'OK') {
  // console.log(results);
  html = "";
 
  for (var i=0; i<results.length-1; i++) {
  html += "<br>Calle: "+results[i]["address_components"][0]["long_name"];
  html += "<br>Ciudad: "+results[i]["address_components"][1]["long_name"];
  html += "<br>Provincia: "+results[i]["address_components"][2]["long_name"];
  html += "<br>Comunidad: "+results[0]["address_components"][3]["long_name"];
  html += "<br>País: "+results[0]["address_components"][4]["long_name"];
  html += "<br>CP: "+results[0]["address_components"][5]["long_name"];
  html +="<hr>";
  // html += "<br>Cinco: "+results[i]["address_components"][4]["long_name"];

 
  }
  $("#datos").html(html);
 
} else {
  window.alert('No hay resultados');
}
});
}
</script>

No hay comentarios:

Publicar un comentario