将JS getCurrentPosition传递给全局变量

问题描述 投票:0回答:2

我正在构建需要用户位置的应用程序,以实现此目的,我正在使用:

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
2个回答
0
投票

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

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

0
投票

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

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');
© www.soinside.com 2019 - 2024. All rights reserved.