2017-10-02 7 views
0

Je veux faire revenir la latitude et la longitude de l'utilisateur actuel de la fonction et j'ai écrit le code suivant, mais ce morceau de code dit "non défini" en conséquence. Si quelqu'un connaît la solution, s'il vous plaît répondrecomment retourner la latitude et la longitude de l'utilisateur en Javascript?

<script> 
function getLocation() { 
    if (navigator.geolocation) { 
     var lat_lng = navigator.geolocation.getCurrentPosition(showPosition); 
     console.log(lat_lng); 
    } else { 
     alert("Geolocation is not supported by this browser."); 
    } 
} 
function showPosition(position) { 
    var user_position = {}; 
    user_position.lat = position.coords.latitude; 
    user_position.lng = position.coords.longitude; 
    return user_position; 
} 
getLocation() 
</script> 

Répondre

0

getCurrentPosition est l'exécution asynchrone et console.log(lat_lng); est exécutée avant d'obtenir le résultat de la fonction suivante:

navigator.geolocation.getCurrentPosition(showPosition);

Vous devez utiliser une fonction callback au lieu.

function getLocation(callback) { 
 
    if (navigator.geolocation) { 
 
     var lat_lng = navigator.geolocation.getCurrentPosition(function(position){ 
 
     console.log(position); 
 
      var user_position = {}; 
 
      user_position.lat = position.coords.latitude; 
 
      user_position.lng = position.coords.longitude; 
 
      callback(user_position); 
 
     }); 
 
    } else { 
 
     alert("Geolocation is not supported by this browser."); 
 
    } 
 
} 
 
getLocation(function(lat_lng){ 
 
    console.log(lat_lng); 
 
});

Working solution.

+0

Merci, je vais essayer –

+0

@AbhayjeetSingh, je mis à jour avec une solution de travail. –