查找带有地理坐标的指南针

时间:2017-07-26 06:20:32

标签: c geolocation geometry compass-geolocation

我想从两个地理位置找到指南针头。 我正在写C应用程序。我写了一个像

这样的函数
in_array

但这不适用于同一地点。这里我传递lat1,long1,lat2,long2度。 任何人都可以帮助我吗?

来自http://www.movable-type.co.uk/scripts/latlong.html的更新代码正在运行,

double CalculateHeading(double lat1, double long1, double lat2, double long2)
{
   double Latitude = lat1 - lat2;
   double Longitude = long1 - long2;
   double angle = 0;

   printf("\n#################################\n");
   printf("Lat1: %lf Lat2: %lf\n", lat1, lat2);
   printf("Long1: %lf Long2: %lf\n", long1, long2);
   printf("Lat Diff: %lf\n", Latitude);
   printf("Long Diff: %lf\n", Longitude);
   angle = atan2(Longitude, Latitude);
   angle = radiansToDegrees(angle);
   printf("Angle: %lf\n", angle);
   printf("#################################\n");
   return angle;
}

1 个答案:

答案 0 :(得分:0)

angle = atan2(y,x);
printf("Angle: %lf\n", radiansToDegrees(fmod(angle + 360.0, 360.0)));

这里你有弧度角度值,所以添加360 是无稽之谈。 可能的更正:

radiansToDegrees(fmod(angle + 2*Pi, 2*Pi))
or 
fmod(radiansToDegrees(angle) + 360.0, 360.0)
相关问题