将 JS getCurrentPosition 传递给全局变量
Posted
技术标签:
【中文标题】将 JS getCurrentPosition 传递给全局变量【英文标题】:Passing JS getCurrentPosition to global variable 【发布时间】: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);
如何将用户纬度和经度传递给全局变量?
【问题讨论】:
【参考方案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。再次感谢。以上是关于将 JS getCurrentPosition 传递给全局变量的主要内容,如果未能解决你的问题,请参考以下文章
navigator.geolocation.getCurrentPosition() 不起作用
无法在 Flask 本地主机应用程序中使用 getCurrentPosition()
geolocation.getCurrentPosition 在晚上失败——如何提供自己的 api 密钥?
当用户选择“不再询问”并禁用地理定位时,React native `Geolocation.getCurrentPosition` 承诺将永远不会被解决/拒绝