【发布时间】:2012-05-18 17:25:24
【问题描述】:
我想做一个函数来计算用户和一个兴趣点(POI)之间的角度,参考真北。
我已经有了我的位置和 POI 位置的经度和纬度,现在我需要它们之间的角度。
这是我所拥有的:
private float calcAzimuth1(float lat0, float long0, float lat1, float long1)
{
//user's latitude and longitude
float userLat = (float) ((lat0 * ((float)Math.PI))/180);
float userLong = (float) ((long0 * ((float)Math.PI))/180);
//POI's latitude and longitude
float latT1 = (float) ((lat1 * ((float)Math.PI))/180);
float longT1 = (float) ((long1 * ((float)Math.PI))/180);
//angle between them
float angle=??}
【问题讨论】:
-
它们之间的角度参考什么?
-
对不起,我忘了!参考真北!
-
这实际上相当棘手。经度从赤道的 60 海里到两极的 0 不等,因此转换为局部矩形距离比需要在计算反正切之前考虑到这一点。但是在更长的距离上,进行局部矩形投影不再有效。这在古代的某些地方是经过深思熟虑的,并且是航海时代导航员的常识,所以一个好的导航入门应该能满足你的需要。寻呼纳撒尼尔鲍迪奇...en.wikisource.org/wiki/The_American_Practical_Navigator
标签: android azimuth point-of-interest