Javascript 第一次初始化地理定位循环时出错

Javascript 第一次初始化地理定位循环时出错,javascript,geolocation,progressive-web-apps,geofencing,Javascript,Geolocation,Progressive Web Apps,Geofencing,此代码首次初始化时出现错误(启动函数) //跟踪器函数 设tempCoords=[]; 常量homePosition=[]; 函数setHome(){ 警报(“位置集”); document.getElementById(“开始”).classList.remove(“禁用”); navigator.geolocation.getCurrentPosition( 数据=>{ 控制台日志(数据); homePosition.push([data.coords.lation,data.coords.

此代码首次初始化时出现错误(启动函数)

//跟踪器函数
设tempCoords=[];
常量homePosition=[];
函数setHome(){
警报(“位置集”);
document.getElementById(“开始”).classList.remove(“禁用”);
navigator.geolocation.getCurrentPosition(
数据=>{
控制台日志(数据);
homePosition.push([data.coords.lation,data.coords.longitude]);
setItem(“homePosition”,JSON.stringify(homePosition));
});
}
//lat远程计算
函数arePointsNear(检查点、中心点、公里){
var ky=40000/360;
var kx=数学cos(数学PI*centerPoint.lat/180.0)*ky;
var dx=数学绝对值(centerPoint.lng-checkPoint.lng)*kx;
var dy=数学.abs(centerPoint.lat-checkPoint.lat)*ky;
返回Math.sqrt(dx*dx+dy*dy){
navigator.geolocation.getCurrentPosition(
数据=>{
控制台日志(数据);
push([data.coords.lation,data.coords.longitude]);
setItem('coords',JSON.stringify(tempCoords));
})
设homeLatLong=homePosition[0];
设currentlatLong=tempCoords[0];
5km内的var=arePointsNear({
lat:homeLatLong[0],lng:homeLatLong[1]
}, {
lat:currentlatLong[0],lng:currentlatLong[1]
}, 0.1);
log(`this dumbass在5km以内吗?:${inside5km}`);
如果(!5公里以内){
outsideZoneNotif();
tempCoords.length=0;
}否则{
insideZoneNotif();
tempCoords.length=0;
}
}, 15000);
}else if(Notification.permission==“blocked”){
警报(“请启用通知!”);
/*用户以前拒绝推送。无法重新推送*/
}否则{
/*向用户显示提示*/
警报(“请启用通知!”);
}
}
另外,当位置发生变化时,
arePointsNear
仍然读取true,直到再次运行,然后才意识到它是false 基本上,该错误发生在循环的第一次,或者
arePointsNear
读取false的第一次 循环需要第二次才能正常运行 如果需要更多信息,您可以从查看网站/pwa