我想从两个地理位置找到指南针头。 我正在写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;
}
答案 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)