错误首次地理定位循环已初始化

问题描述

代码首次初始化(启动功能)时出现错误

//Tracker Functions
let tempCoords = [];
const homePosition = [];

function setHome() {
    alert("Location Set");
    document.getElementById("start").classList.remove('disabled');
    navigator.geolocation.getCurrentPosition(
    data => {
        console.log(data);
        homePosition.push([data.coords.latitude,data.coords.longitude]);
        window.localStorage.setItem("homePosition",JSON.stringify(homePosition));
    });
}

//lat long distance calculate
function arePointsNear(checkPoint,centerPoint,km) {
  var ky = 40000 / 360;
  var kx = Math.cos(Math.PI * centerPoint.lat / 180.0) * ky;
  var dx = Math.abs(centerPoint.lng - checkPoint.lng) * kx;
  var dy = Math.abs(centerPoint.lat - checkPoint.lat) * ky;
  return Math.sqrt(dx * dx + dy * dy) <= km;
}

function start() {
    if (Notification.permission === "granted") {
  /* do our magic */
            alert("We are Now tracking your location");
    setInterval(() => {
    navigator.geolocation.getCurrentPosition(
    data => {
        console.log(data);
        tempCoords.push([data.coords.latitude,data.coords.longitude]);
        window.localStorage.setItem('coords',JSON.stringify(tempCoords));
    })

    let homeLatLong = homePosition[0];
    let currentlatLong = tempCoords[0];
    var inside5km = arePointsNear({
      lat: homeLatLong[0],lng: homeLatLong[1]
    },{
      lat: currentlatLong[0],lng: currentlatLong[1]
    },0.1);
    console.log(`Is this dumbass inside 5km?: ${inside5km}`);

    if (!inside5km) {
      outsideZoneNotif();
      tempCoords.length = 0;
    } else {
      insideZoneNotif();
      tempCoords.length = 0;
    }
  },15000);
} else if (Notification.permission === "blocked") {
    alert("Please Enable Notifications!");
 /* the user has prevIoUsly denied push. Can't reprompt. */
} else {
  /* show a prompt to the user */
    alert("Please Enable Notifications!");
}
}

enter image description here

同样,当位置更改时,arePointsNear显示为true,直到再次运行,然后才意识到它是错误的 基本上,该错误发生在第一次循环时,或者第一次arePointsNear 读取为false时 并且需要第二次循环才能正常运行 如果需要更多信息,可以从here查看网站/ pwa。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...