如何使用GPS坐标计算2个地点之间的距离?GPS坐标距离测量
5
A
回答
3
http://en.wikipedia.org/wiki/Great-circle_distance
(勾股定理是不够的,因为地球的球形)
9
你必须使用haversine公式: haversine公式:
R =地球半径(平均半径= 6371公里)
Δlat= lat2- LAT1
Δlong= long2- long1
一个=sin²(Δlat/ 2)+ COS(LAT1)名为.cos(LAT2).sin²(Δlong/ 2)
C = 2.atan2(√A,√(1-a))的
d = RC
,其中d是距离(您的溶液)和所有的角度必须是弧度
外观为半正矢库,并且在C:
#include <math.h>
#include "haversine.h"
#define d2r (M_PI/180.0)
//calculate haversine distance for linear distance
double haversine_km(double lat1, double long1, double lat2, double long2)
{
double dlong = (long2 - long1) * d2r;
double dlat = (lat2 - lat1) * d2r;
double a = pow(sin(dlat/2.0), 2) + cos(lat1*d2r) * cos(lat2*d2r) * pow(sin(dlong/2.0), 2);
double c = 2 * atan2(sqrt(a), sqrt(1-a));
double d = 6367 * c;
return d;
}
double haversine_mi(double lat1, double long1, double lat2, double long2)
{
double dlong = (long2 - long1) * d2r;
double dlat = (lat2 - lat1) * d2r;
double a = pow(sin(dlat/2.0), 2) + cos(lat1*d2r) * cos(lat2*d2r) * pow(sin(dlong/2.0), 2);
double c = 2 * atan2(sqrt(a), sqrt(1-a));
double d = 3956 * c;
return d;
}
+0
注意:这只会给你一个非常粗略的估计。地球不是一个完美的球体(这就是为什么存在[WGS84](http://en.wikipedia.org/wiki/WGS84)),并且计算不考虑高度。 – GrahamS 2011-05-27 07:38:37
相关问题
- 1. GPS坐标得到错误的距离
- 2. 三角测量GPS坐标
- 3. 从一组坐标和距离计算新的GPS坐标?
- 4. 如何找到已知GPS距离的GPS坐标?
- 5. Android:如何使用GPS测量距离
- 6. Android GPS精确距离测量
- 7. iOS接近度和GPS测量距离
- 8. 测量坐标的经度和纬度坐标之间的距离
- 9. 测量距离
- 10. 获取坐标,测量距离并对它们进行比较
- 11. 从实际距离测量得到的像素坐标
- 12. 通过添加固定距离获取下一个GPS坐标
- 13. 获取精确的距离在2 GPS坐标xamarin
- 14. 从多个GPS坐标计算到最近岸的距离
- 15. 查找距离最近的GPS坐标(最邻近搜索)
- 16. 以度为单位的GPS坐标计算距离
- 17. 离线GPS坐标访问 - iPhone/Android
- 18. 标签坐标轴与坐标图的距离不同
- 19. QuickTime GPS坐标
- 20. gps坐标+米
- 21. BinarySearch坐标之间的距离
- 22. 在Laravel中计算坐标距离
- 23. 到平面球面坐标距离
- 24. 计算距离坐标公里与Java
- 25. 使用坐标开发距离矩阵
- 26. 将距离添加到坐标上
- 27. 计算距离,给定一组坐标
- 28. 获得距离点最近的坐标
- 29. 计算坐标之间的距离
- 30. 椭圆测量距离
重复http://stackoverflow.com/questions/1420045/how-to-find-distance-from-the-latitude-and-longitude-of-two-locations – 2011-05-27 07:49:28
您可能会在嵌入式环境中使用此算法,但问题中没有任何东西将其与嵌入式计算联系起来。问题重新标记。 – 2011-05-31 15:01:41