C语言经纬度计算距离
时间: 2024-06-17 08:02:18 浏览: 215
C语言中计算经纬度之间距离的方法可以使用球面三角法来实现。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
#define EARTH_RADIUS 6371.0
double deg2rad(double deg) {
return deg * (PI / 180);
}
double calculate_distance(double lat1, double lon1, double lat2, double lon2) {
double dlat = deg2rad(lat2 - lat1);
double dlon = deg2rad(lon2 - lon1);
double a = sin(dlat / 2) * sin(dlat / 2) + cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * sin(dlon / 2) * sin(dlon / 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
double distance = EARTH_RADIUS * c;
return distance;
}
int main() {
double lat1 = 40.7128; // 纬度1
double lon1 = -74.0060; // 经度1
double lat2 = 34.0522; // 纬度2
double lon2 = -118.2437; // 经度2
double distance = calculate_distance(lat1, lon1, lat2, lon2);
printf("两点之间的距离为: %.2f 公里\n", distance);
return 0;
}
```
这段代码中,`calculate_distance`函数使用了球面三角法来计算两个经纬度之间的距离。`lat1`和`lon1`表示第一个点的纬度和经度,`lat2`和`lon2`表示第二个点的纬度和经度。最后,通过调用`calculate_distance`函数计算出两点之间的距离,并将结果打印出来。
阅读全文