Hola gente, estoy aprendiendo javascript y estoy bastante confundido, soy programador java, y me resultan extraños los métodos asíncronos jajaja.
Pues bien, tengo el siguiente código que me devuelve la dirección de mi ubicación:
function getActualLocation() {
var options = {timeout: 30000, enableHighAccuracy: true};
navigator.geolocation.getCurrentPosition(sucessPosition , errorPosition, options);
}
function sucessPosition(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var reverseGeocoder = new google.maps.Geocoder();
var currentPosition = new google.maps.LatLng(latitude, longitude);
reverseGeocoder.geocode({'latLng': currentPosition}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
direccion = results[0].formatted_address;
} else {
navigator.notification.alert('Error');
}
} else {
navigator.notification.alert('Error');
}
});
}
function errorPosition() {
navigator.notification.alert('Error');
}
Todo funciona correcto y como veis tengo una variable "direccion" con el valor que necesito. El problema esque al ser una petición asíncrona se pierde el valor al salir de la función y lo necesito en otra función en la cual le paso una serie de datos a un web service.
He probado a que dirección sea una variable global al principio del .js pero veo que tampoco funciona y sigo obteniendo "undefined".
A ver si podeis aclararme un poco el tema. Gracias.