WebSQL / SQLite使用纬度和经度计算距离?

时间:2014-06-07 18:01:35

标签: sqlite cordova web-sql

我有一个PhoneGap应用程序,并已将所有内容转移到本地数据库,我现在需要从数据库中的点计算用户位置。

有没有人有任何指示如何做到这一点,我使用的是Google API,但现在专注于离线工作,所以必须查询数据库。

感谢。

1 个答案:

答案 0 :(得分:0)

你想计算经度和纬度(离线)的距离,对吧?

Look at this link

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;
相关问题