elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  (Solucionado) No consigo asignar valor a una variable en javascript
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Solucionado) No consigo asignar valor a una variable en javascript  (Leído 3,538 veces)
Pantera80

Desconectado Desconectado

Mensajes: 17



Ver Perfil
(Solucionado) No consigo asignar valor a una variable en javascript
« en: 12 Febrero 2016, 20:10 pm »

Hola a todos, y gracias de antemano por ayudarme.

Estoy trabajando en una web donde necesito saber la dirección del usuario para crear una ruta de su localización hasta la del cliente.

Hasta ahora he conseguido trazarla cuando el usuario introduce una dirección, pero me gustaría que esto funcionase para poner el típico botón de "Usar mi localización actual"

El problema en concreto que tengo es que, como indico en el código, consigo la dirección y la pinto en un alert, pero sin embargo la variable "direccion" me aparece todo el rato, incluso en depuración como UNDEFINED.

Agradezco cualquier ayuda, gracias


Código
  1. function calcularMiUbicacion(){
  2.        debugger;
  3.        var direccion='';
  4.        var output = document.getElementById("out");
  5.  
  6.  
  7.        if(!navigator.geolocation){
  8.  
  9.            output.innerHTML="<p>Tu navegador no soporta Geolocalización</p>";
  10.            return;
  11.        }
  12.  
  13.        function success(position){
  14.            debugger;
  15.            alert('Estoy en success');    
  16.            var latitud = position.coords.latitude;
  17.            var longitud = position.coords.longitude;
  18.            var direccion='';
  19.  
  20.  
  21.            var geocoder = new google.maps.Geocoder;
  22.            var latlng = {
  23.                lat:latitud ,
  24.                lng: longitud
  25.            };
  26.            geo =geocoder.geocode(
  27.                {'location': latlng},
  28.                function(results, status) {
  29.  
  30.                        if (status === google.maps.GeocoderStatus.OK) {
  31.                            if (results[0]) {
  32.  
  33.                                direccion = results[0].formatted_address.toString();
  34.                                /*ESTE ALERT PINTA BIEN LA DIRECCION */
  35.                                alert('direccion: '+direccion);
  36.  
  37.  
  38.                            } else {
  39.                                window.alert('No results found');
  40.                            }
  41.                        } else {
  42.                            window.alert('Geocoder failed due to: ' + status);
  43.                        }
  44.  
  45.  
  46.                });
  47.  
  48.  
  49.        }          
  50.  
  51.        function error(){
  52.            alert('Incapaz de conseguir tu ubicación');
  53.            output.innerHTML="Incapaz de conseguir tu ubicación";
  54.        }
  55.  
  56.        direccion = navigator.geolocation.getCurrentPosition(success,error);
  57.        return direccion;
  58.  
  59.    }
  60.  


« Última modificación: 22 Febrero 2016, 20:44 pm por Pantera80 » En línea

Pantera80

Desconectado Desconectado

Mensajes: 17



Ver Perfil
Re: No consigo asignar valor a una variable en javascript
« Respuesta #1 en: 22 Febrero 2016, 20:43 pm »

He conseguido averiguar la solución a mi problema

He depurado a tope y no he conseguido saber dónde había fallado. Así que decidí cambiar el planteamiento de la función y en vez de basarme en la dirección del usuario lo he hecho en sus coordenadas (mucho más fáciles de obtener). Así queda la cosa:

Aquí consigo las coordenadas del usuario:

Código
  1. /********calcularMiUbicacion()*************************************/
  2.    function calcularMiUbicacion(){
  3.  
  4.        if(!navigator.geolocation){
  5.            alert('Tu navegador no soporta geolocalización');
  6.            return;
  7.        }
  8.  
  9.        function success(position){
  10.  
  11.            var latitud = position.coords.latitude;
  12.            var longitud = position.coords.longitude;
  13.  
  14.            var lat = parseFloat(latitud);
  15.            var lng = parseFloat(longitud);
  16.  
  17.            var latlng = {
  18.                lat:lat ,
  19.                lng: lng
  20.            };            
  21.            origen = latlng;
  22.  
  23.            calcularRuta();                    
  24.  
  25.        }          
  26.  
  27.        function error(){
  28.            alert('Incapaz de conseguir tu ubicación');
  29.        }
  30.  
  31.        navigator.geolocation.getCurrentPosition(success,error);
  32.  
  33.  
  34.    }
  35.  
  36.    /********Fin calcularMiUbicacion()*************************************/
  37.  
  38.  


Y aquí creo la ruta:
Código
  1. //****calcularRuta()**************************
  2.    function calcularRuta(){
  3.  
  4.        var request = {
  5.             origin: origen,
  6.             destination: destino,
  7.             travelMode: google.maps.DirectionsTravelMode[$('#modo_viaje').val()],
  8.             unitSystem: google.maps.DirectionsUnitSystem[$('#tipo_sistema').val()],
  9.             provideRouteAlternatives: true
  10.        };
  11.  
  12.        directionsService.route(request, function(response, status) {
  13.            if (status === google.maps.DirectionsStatus.OK) {
  14.                directionsDisplay.setMap(map);
  15.                directionsDisplay.setPanel($("#panel_ruta").get(0));
  16.                directionsDisplay.setDirections(response);
  17.            } else {
  18.                    alert("No existen rutas entre ambos puntos");
  19.            }
  20.        });
  21.    }
  22.    /******Fin calcularRuta()***************************************/
  23.  


« Última modificación: 22 Febrero 2016, 20:46 pm por Pantera80 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines