请用C语言写出根据两个经纬度确定定位精度
时间: 2023-06-23 21:09:26 浏览: 114
以下是根据两个经纬度确定定位精度的 C 语言代码:
```c
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
#define EARTH_RADIUS 6371.0 // 地球半径,单位为公里
// 将角度转换为弧度
double rad(double d) {
return d * PI / 180.0;
}
// 根据两个经纬度计算定位精度
double calcDistance(double lat1, double lng1, double lat2, double lng2) {
double radLat1 = rad(lat1);
double radLat2 = rad(lat2);
double a = radLat1 - radLat2;
double b = rad(lng1) - rad(lng2);
double s = 2 * asin(sqrt(pow(sin(a/2),2) + cos(radLat1)*cos(radLat2)*pow(sin(b/2),2)));
s = s * EARTH_RADIUS;
s = round(s * 1000) / 1000; // 保留三位小数
return s;
}
int main() {
double lat1 = 39.90960456049752; // 纬度1
double lng1 = 116.3972282409668; // 经度1
double lat2 = 39.908722235996834; // 纬度2
double lng2 = 116.39754796040056; // 经度2
double distance = calcDistance(lat1, lng1, lat2, lng2);
printf("两个经纬度之间的距离为:%.3f公里\n", distance);
return 0;
}
```
注:以上代码中的经纬度是以北京市中心为例,实际使用时需根据需求更改经纬度。
阅读全文