如何return用户在Javascript的经纬度?

how to return latitude and longitude of the user in Javascript?

我想从该函数中获取当前用户的 return 纬度和经度,我编写了以下代码,但这段代码的结果是 "undefined"。如果有人知道解决方案,请回答

<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>

getCurrentPosition 正在执行 异步 并且 console.log(lat_lng); 在您从以下函数获得结果之前执行:

navigator.geolocation.getCurrentPosition(showPosition);

您必须改用 callback 函数。

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.