我正在使用freeCodeCamp.org上的天气应用程序项目,并且在将坐标存储到变量时遇到了一些麻烦。这是我的代码到目前为止的样子。
hdu = fits.PrimaryHDU(mainarray)
hdu.writeto('skymap.fits', clobber = True)
在function userLocation(){
var lat = 0,
lon = 0;
if(navigator.geolocation){
lon = navigator.geolocation.getCurrentPosition(lonPos);
lat = navigator.geolocation.getCurrentPosition(latPos);
}
else{ alert("Geolocation not supported by this browser"); }
return lat, lon;
}
function latPos(position){ return position.coords.latitude; }
function lonPos(position){ return position.coords.longitude; }
和latPos()
函数内,我可以lonPos()
或console.log(position.coords.latitude)
获取我的坐标。但是,在longitude
函数中,userLocation()
和lat
变量返回lon
。我在这里错过了什么?这是项目的code pen。
答案 0 :(得分:0)
从头顶看我的代码我想你应该调用latPos和lonPos,如: navigator.geolocation.getCurrentPosition(龙博士())。
答案 1 :(得分:0)
navigator.geolocation.getCurrentPosition()
接受一个回调参数但它什么都不返回。
所以你最好的选择是使用全局变量
这样的事情可能有用:
编辑:似乎发生了一些api调用,所以你必须在回调中做你想做的事情。以下代码已更新function userLocation()
{
if(navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(Position);
}
else
{
alert("Geolocation not supported by this browser");
}
}
function Position(pos)
{
let lat = pos.coords.latitude;
let lon = pos.coords.longitude;
console.log(lat,lon);
}