0
我正在开发一个简单的jQuery/Phonegap应用程序,我正在使用watchPosition来持续计算当前距离和某个远程位置之间的距离。这工作得很好,但这是我的问题。我想在距离该地点不到一英里时触发一个事件(功能)。我现在拥有的方式只要距离不到一英里就会继续触发事件。我能做些什么来“告诉”watchPosition只触发一次事件并继续观看我的位置?Phonegap watchPosition测量距离和触发事件
我包括了我认为的代码的相关部分供您参考。 watchPosition的
成功部分:
var remoteLat = xx.xxxx;
var remoteLng = xx.xxxx;
function onSuccess(position) {
var myLat = position.coords.latitude;
var myLng = position.coords.longitude;
var distancia = gps_distance(myLat, myLng, remoteLat, remoteLng);
if (distancia < 1) {
alert('Almost There');
playSound();
}
}
距离计算功能:
function gps_distance(lat1, lon1, lat2, lon2) {
var R = 3959; // use 3959 for miles or 6371 for km
var dLat = (lat2 - lat1) * (Math.PI/180);
var dLon = (lon2 - lon1) * (Math.PI/180);
var lat1 = lat1 * (Math.PI/180);
var lat2 = lat2 * (Math.PI/180);
var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
return d;
}
如果更多的代码是必要的,请让我知道。我还想对先前询问的关于计算距离Link的这个问题给予肯定。谢谢!
为什么你不使用varibale来确保你的这个事件在距离低于一英里时变得不相关? – Blauharley 2015-04-03 17:40:26