我在http://www.movable-type.co.uk/scripts/latlong.html上使用了算法来找到两点之间的距离.
我的两点是
long1 = 51.507467;
lat1 = -0.08776;
long2 = 51.508736;
lat2 = -0.08612;
Run Code Online (Sandbox Code Playgroud)
根据Movable Type Script,答案是0.1812km
我的应用程序给出结果(d)为0.230km
检查Haversine公式:http://www.movable-type.co.uk/scripts/latlong.html
double R = 6371; // earth’s radius (mean radius = 6,371km)
double dLat = Math.toRadians(lat2-lat1);
double dLon = Math.toRadians(long2-long1);
a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double d = R * c;
Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序,告诉用户大量的点与当前位置有多远.
每个点都有经度和纬度.
我已经阅读了这篇文章 http://www.movable-type.co.uk/scripts/latlong.html
并且看到这篇文章 当你知道java中的经度和纬度时,以米为单位计算距离
需要进行许多计算(50-200).
如果速度比这些计算的准确性更重要,哪一个最好?