根据两点经纬度算距离C语言
时间: 2023-07-02 20:18:11 浏览: 512
计算两点经纬度之间的距离可以使用 Haversine 公式,它可以在 C 语言中实现。下面是一个示例代码:
```
#include <math.h>
#define RADIUS 6371 // 地球半径,单位 km
double to_radians(double degrees) {
return degrees * M_PI / 180.0;
}
double distance(double lat1, double lon1, double lat2, double lon2) {
double delta_lat = to_radians(lat2 - lat1);
double delta_lon = to_radians(lon2 - lon1);
double a = sin(delta_lat / 2) * sin(delta_lat / 2) + cos(to_radians(lat1))
* cos(to_radians(lat2)) * sin(delta_lon / 2) * sin(delta_lon / 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
return RADIUS * c;
}
```
其中,`to_radians` 函数将角度转换为弧度,`distance` 函数计算两点之间的距离。参数 `lat1` 和 `lon1` 是第一个点的纬度和经度,参数 `lat2` 和 `lon2` 是第二个点的纬度和经度,返回值是两点之间的距离,单位为 km。
阅读全文