我有一个PhoneGap应用程序,并已将所有内容转移到本地数据库,我现在需要从数据库中的点计算用户位置。
有没有人有任何指示如何做到这一点,我使用的是Google API,但现在专注于离线工作,所以必须查询数据库。
感谢。
答案 0 :(得分:0)
你想计算经度和纬度(离线)的距离,对吧?
var lat1 = //start latitude
var lon1 = //start longitude
var lat2 = //end latitude
var lon2 = //end longitude
var R = 6371; // now in km (change for get miles)
var dLat = (lat2-lat1) * Math.PI / 180;
var dLon = (lon2-lon1) * Math.PI / 180;
var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(lat1 * Math.PI / 180 ) * Math.cos(lat2 * Math.PI / 180 ) * Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
if (d>1)
return Math.round(d);//+"km";
else if (d<=1)
return Math.round(d*1000)+"m";
return d;