Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/05/2015, 13:43
maizaguirre
 
Fecha de Ingreso: mayo-2015
Mensajes: 3
Antigüedad: 8 años, 11 meses
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.