Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Obtener ciudad y estado de la API

Estas en el tema de Obtener ciudad y estado de la API en el foro de Javascript en Foros del Web. Tengo el siguiente código en jquery: Código: function obtener_localizacion() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(mostrar_mapa); }else{ alert('Tu navegador no soporta la API de geolocalizacion'); } } ...
  #1 (permalink)  
Antiguo 14/05/2015, 11:50
 
Fecha de Ingreso: mayo-2015
Mensajes: 3
Antigüedad: 7 años, 1 mes
Puntos: 0
Obtener ciudad y estado de la API

Tengo el siguiente código en jquery:

Código:
function obtener_localizacion() {
  if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(mostrar_mapa);
  }else{
    alert('Tu navegador no soporta la API de geolocalizacion'); 
  }
}
function mostrar_mapa(position) {
  var latitud = position.coords.latitude;
  var longitud = position.coords.longitude;
  //position.coords.accuracy = 1000;
  var image_url = "http://maps.google.com/maps/api/staticmap?sensor=false&center=" + latitud + "," +
                    longitud + "&zoom=14&size=300x400&markers=color:red|label:P|" +
                    latitud + ',' + longitud;
    $("#mapa").html(
        $(document.createElement("img")).attr("src", image_url).attr('id','map')
        //alert('hola')
    );
//alert(exactitud);
}
Pero lo que quiero es obtener la ciudad y el estado de la ubicación de usuario, ¿alguién sabe como obtener estos datos?
  #2 (permalink)  
Antiguo 14/05/2015, 12:20
Avatar de Nopal_Studio  
Fecha de Ingreso: julio-2012
Ubicación: DF
Mensajes: 42
Antigüedad: 10 años
Puntos: 10
Respuesta: Obtener ciudad y estado de la API

<html lang="es">
<head>
<meta charset="utf-8"/>
<title>Ubicación</title>
<script type="text/javascript">

function localizar()
{
navigator.geolocation.getCurrentPosition(ubicacion ,error);
}

function ubicacion(posicion)
{
var contenedor = document.getElementById("mapa");

var latitud = posicion.coords.latitude;
var longitud = posicion.coords.longitude;
var precision = posicion.coords.accuracy;

alert("Lat="+latitud+" - Long="+longitud+" - Precision="+precision);
}

function error(error)
{
if(error.code == 0)
alert("Error Desconocido");
else if(error.code == 1)
alert("No fue posible contactarte");
else if(error.code == 2)
alert("No hay una ubicacion disponible");
else if(error.code == 3)
alert("Tiempo agotado");
else
alert("Error Desconocido");
}
</script>

</head>
<body>
<button onClick="localizar()">Ver mi Ubicación </button>
</body>
</html>
  #3 (permalink)  
Antiguo 14/05/2015, 12:35
 
Fecha de Ingreso: mayo-2015
Mensajes: 3
Antigüedad: 7 años, 1 mes
Puntos: 0
Respuesta: Obtener ciudad y estado de la API

Nopal_Studio:

Eso me devuelve la longitud y la latitud más no la region ciudad y el estado que es lo que necesito
  #4 (permalink)  
Antiguo 14/05/2015, 12:39
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años, 9 meses
Puntos: 145
Respuesta: Obtener ciudad y estado de la API

http://www.latlong.net/

http://www.latlong.net/Show-Latitude-Longitude.html

http://stackoverflow.com/questions/6...ongitude-point
__________________
¿Te sirvió la respuesta? Deja un +1
  #5 (permalink)  
Antiguo 14/05/2015, 13:37
Avatar de Nopal_Studio  
Fecha de Ingreso: julio-2012
Ubicación: DF
Mensajes: 42
Antigüedad: 10 años
Puntos: 10
Respuesta: Obtener ciudad y estado de la API

Vas a tener que descargar una DB donde tengas el nombre del edo, pais, latitud y longitud, posteriormente vas a buscar en la DB por latitud y logitud (que previamente obtuviste con el script anterior que te escribi)
la base de datos la puedes descargar de aqui: https://www.maxmind.com/es/free-world-cities-database
  #6 (permalink)  
Antiguo 15/05/2015, 13:43
 
Fecha de Ingreso: mayo-2015
Mensajes: 3
Antigüedad: 7 años, 1 mes
Puntos: 0
Respuesta: Obtener ciudad y estado de la API

Cita:
Iniciado por Nopal_Studio Ver Mensaje
Vas a tener que descargar una DB donde tengas el nombre del edo, pais, latitud y longitud, posteriormente vas a buscar en la DB por latitud y logitud (que previamente obtuviste con el script anterior que te escribi)
la base de datos la puedes descargar de aqui: [url]https://www.maxmind.com/es/free-world-cities-database[/url]
He encontrado una solución mucho más simple :

Solamente agregué una función de callback :

Código:
var region = "";
    var country = "";
    function getLocation()
    {
        if (navigator.geolocation)
          {
              navigator.geolocation.getCurrentPosition(showPosition);
          } else {
              alert('No soporta geolocalizacion');
          }
    }
   

Código Javascript:
Ver original
  1. function showPosition(position)
  2.     {
  3.       var geocoder = new google.maps.Geocoder();
  4.       var latlong = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
  5.       geocoder.geocode({'latLng': latlong}, function(results, status) {
  6.         if (status == google.maps.GeocoderStatus.OK) {
  7.           if (results[0]) {
  8.             for (var i = 0; i < results[0].address_components.length; i++)
  9.             {
  10.               alert(results[0].address_components[1].types.administrative_area_level_1);
  11.               var longname = results[0].address_components[i].long_name;
  12.               var type = results[0].address_components[i].types;
  13.              
  14.               if (type.indexOf("administrative_area_level_1") != -1)
  15.               {
  16.                 region = longname;
  17.               }
  18.               if (type.indexOf("country") != -1)
  19.               {
  20.                 country = longname;
  21.               }
  22.             }
  23.           }
  24.         }
  25.       });
  26.       alert(region + country);
  27.     }
Esta función me devuelve un json donde puedo obtener todos los datos de la latitud y longitud proporcionada, desde el país hasta la calle y el número.

Pueden encontrar más info de esta API acá:
[URL="https://developers.google.com/maps/documentation/geocoding/?hl=es"]https://developers.google.com/maps/documentation/geocoding/?hl=es[/URL]

De cualquier manera gracias y saludos.

Etiquetas: api, ciudad, estado, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:10.