Cita:
Iniciado por Nopal_Studio 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 originalfunction showPosition(position)
{
var geocoder = new google.maps.Geocoder();
var latlong = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
geocoder.geocode({'latLng': latlong}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
for (var i = 0; i < results[0].address_components.length; i++)
{
alert(results[0].address_components[1].types.administrative_area_level_1);
var longname = results[0].address_components[i].long_name;
var type = results[0].address_components[i].types;
if (type.indexOf("administrative_area_level_1") != -1)
{
region = longname;
}
if (type.indexOf("country") != -1)
{
country = longname;
}
}
}
}
});
alert(region + country);
}
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.