Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 地理定位监视位置。到达位置时如何获取一个事件?_Javascript_Jquery Mobile - Fatal编程技术网

Javascript 地理定位监视位置。到达位置时如何获取一个事件?

Javascript 地理定位监视位置。到达位置时如何获取一个事件?,javascript,jquery-mobile,Javascript,Jquery Mobile,我正在为移动用户开发一个WebApp,他们必须去预定义的位置,首先可以在那里看到(文本、图片或任何东西)。 因此,我有一个预定义的位置和当前用户位置。如果两个位置相等,我将展示一些东西。 我怎么做?此代码不起作用: var id, ziel, options; //Verfolgen beginnen id = navigator.geolocation.watchCurrentPosition(verfolgePosition); function verfolgePosition(pos)

我正在为移动用户开发一个WebApp,他们必须去预定义的位置,首先可以在那里看到
(文本、图片或任何东西)。 因此,我有一个预定义的位置和当前用户位置。如果两个位置相等,我将展示一些东西。 我怎么做?此代码不起作用:

var id, ziel, options;
//Verfolgen beginnen
id = navigator.geolocation.watchCurrentPosition(verfolgePosition);

function verfolgePosition(pos) {
  var aktuell = pos.coords;

  if (ziel.latitude === aktuell.latitude && ziel.longitude === aktuell.longitude) {
    console.log('Sie haben Ihr Ziel erreicht');
    //Verfolgen beenden
    navigator.geolocation.clearWatch(id);
  }
}

ziel = {
  latitude : 0,
  longitude: 0
};

options = {
  enableHighAccuracy: false,
  timeout: 5000,
  maximumAge: 0
};
顺便说一下,目标可以是:

ziel = {
  latitude : 52.514971,
  longitude: 13.369172
};
欲了解更多信息,请阅读

没有方法
watchCurrentPosition()
。您要查找的是
.watchPosition()
/Yes,这是真的。我把它改成了“.watchPosition”,但它只工作了一次。可能是因为移动位置(移动设备)更改为fast以获得准确的固定位置,也可能是因为我在同一位置测试此脚本。如何修复它?从我评论中的w3链接:“在监视过程的步骤5.2.2中,仅当获得新位置且该位置与以前报告的位置显著不同时,才会调用successCallback。什么构成重大差异的定义留待实现。此外,在步骤5.2.2和5.2.3中,实现可能会对回调频率施加限制,以避免无意中消耗过多的资源。“据我所知,我的测试无法在固定位置工作?其他人能否帮助我解决此问题?可能是另一种解决方案,不同的代码?
var id, target, options;

function success(pos) {
  var crd = pos.coords;

  if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
    console.log('Congratulations, you reached the target');
    navigator.geolocation.clearWatch(id);
  }
}

function error(err) {
  console.warn('ERROR(' + err.code + '): ' + err.message);
}

target = {
  latitude : 0,
  longitude: 0
};

options = {
  enableHighAccuracy: false,
  timeout: 5000,
  maximumAge: 0
};

id = navigator.geolocation.watchPosition(success, error, options);