|
发表于 2024-3-8 16:21:27
|
显示全部楼层
让chatgpt3.5写了下,我在mdk时验证了,是2.1米左右
#include <math.h>
#define R 6371 // 地球半径,单位:公里
// 将度转换为弧度
double toRadians(double degree) {
return degree * M_PI / 180.0;
}
// 计算两个GPS坐标点之间的距离
double calculateDistance(double lat1, double lon1, double lat2, double lon2) {
// 将度转换为弧度
lat1 = toRadians(lat1);
lon1 = toRadians(lon1);
lat2 = toRadians(lat2);
lon2 = toRadians(lon2);
// 计算纬度和经度之差
double deltaLat = lat2 - lat1;
double deltaLon = lon2 - lon1;
// 应用Haversine公式计算两点之间的距离
double a = sin(deltaLat / 2) * sin(deltaLat / 2) + cos(lat1) * cos(lat2) * sin(deltaLon / 2) * sin(deltaLon / 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
double distance = R * c;
// 返回距离(单位:公里)
return distance * 1000; // 将距离单位转换为米
}
int main() {
// 给定的GPS坐标点
double lat1 = 22 + 36.860596 / 60;
double lon1 = 114 + 2.199219 / 60;
double lat2 = 22 + 36.859863 / 60;
double lon2 = 114 + 2.200195 / 60;
// 计算两点之间的距离
double distance = calculateDistance(lat1, lon1, lat2, lon2);
// 输出结果
printf("两点之间的距离为:%f 米\n", distance);
return 0;
}
|
|