【问题标题】:Passing JS getCurrentPosition to global variable将 JS getCurrentPosition 传递给全局变量
【发布时间】:2020-05-16 16:48:58
【问题描述】:

我正在构建一个需要用户位置的应用程序,为此我正在使用:

var options = {
    enableHighAccuracy: true,
    timeout: 5000,
    maximumAge: 0
};

function success(pos) {
    var crd = pos.coords;
    console.log('Your current position is:');
    console.log(`Latitude : ${crd.latitude}`);
    console.log(`Longitude: ${crd.longitude}`);
    console.log(`More or less ${crd.accuracy} meters.`);
    console.log(` ${crd.longitude}`);
 }

function error(err) {
    console.warn(`ERROR(${err.code}): ${err.message}`);
    console.log(`Latitude : 9`);
}

navigator.geolocation.getCurrentPosition(success, error, options);

如何将用户纬度和经度传递给全局变量?

【问题讨论】:

    标签: javascript html variables geolocation global-variables


    【解决方案1】:

    您可以使用本地存储来优化解决方案。

    var options = {
        enableHighAccuracy: true,
        timeout: 5000,
        maximumAge: 0
    };
    
    function success(pos) {
        var crd = pos.coords;
        console.log('Your current position is:');
        console.log(`Latitude : ${crd.latitude}`);
        console.log(`Longitude: ${crd.longitude}`);
        console.log(`More or less ${crd.accuracy} meters.`);
        let userLatitude = crd.latitude;
        let userLongitude = crd.longitude;
        localStorage.setItem("USER_LATITUDE", userLatitude);
        localStorage.setItem("USER_LONGITUDE", userLongitude);
        console.log(` ${crd.longitude}`);
     }
    
    function error(err) {
        console.warn(`ERROR(${err.code}): ${err.message}`);
        console.log(`Latitude : 9`);
    }
    
    navigator.geolocation.getCurrentPosition(success, error, options);
    

    如果你想使用这个位置数据;

    var latitude = localStorage.getItem('USER_LATITUDE');
    var longitude = localStorage.getItem('USER_LONGITUDE');
    

    【讨论】:

      【解决方案2】:

      全局声明变量并在回调中分配它们...(全局变量不是好习惯)

      window.userLat = null;
      window.userLng = null;
      
      var options = {
        enableHighAccuracy: true,
        timeout: 5000,
        maximumAge: 0
      };
      
      function success(pos) {
        var crd = pos.coords;
        console.log('Your current position is:');
        console.log(`Latitude : ${crd.latitude}`);
        console.log(`Longitude: ${crd.longitude}`);
        console.log(`More or less ${crd.accuracy} meters.`);
        console.log(` ${crd.longitude}`);
        userLat = crd.latitude;
        userLng = crd.longitude;
      }
      
      function error(err) {
        console.warn(`ERROR(${err.code}): ${err.message}`);
        console.log(`Latitude : 9`);
      }
      
      navigator.geolocation.getCurrentPosition(success, error, options);

      【讨论】:

      • 感谢@Argee 重播。我尝试了 sn-p 但全局变量返回 null。再次感谢。
      猜你喜欢
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      • 2011-09-10
      • 2018-09-02
      相关资源
      最近更新 更多