【问题标题】:how to return latitude and longitude of the user in Javascript? [duplicate]如何在Javascript中返回用户的纬度和经度? [复制]
【发布时间】:2017-10-02 08:42:50
【问题描述】:

我想从函数中返回当前用户的纬度和经度,我编写了以下代码,但这段代码结果是“未定义”。如果有人知道解决办法,请回答

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

【问题讨论】:

    标签: javascript geolocation geocoding


    【解决方案1】:

    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.

    【讨论】:

    • 谢谢,我试试
    • @AbhayjeetSingh,我用一个可行的解决方案更新了它。
    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2020-09-27
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    相关资源
    最近更新 更多