1 Star 1 Fork 1

vjiot/location2distance

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
location2distance.c 1.16 KB
一键复制 编辑 原始数据 按行查看 历史
xwiron 提交于 2021-06-16 12:49 . update
// main.c
// Distance
// gcc location2distance.c -lm
//
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
#define EARTH_RADIUS 6378137 // 地球近似半径 m
double radian(double d);
double get_distance(double lat1, double lng1, double lat2, double lng2);
// 求弧度
double radian(double d)
{
return d * PI / 180.0; //角度1˚ = π / 180
}
//计算距离
double get_distance(double lat1, double lng1, double lat2, double lng2)
{
double radLat1 = radian(lat1);
double radLat2 = radian(lat2);
double a = radLat1 - radLat2;
double b = radian(lng1) - radian(lng2);
double dst = 2 * asin((sqrt(pow(sin(a / 2), 2) + cos(radLat1) * cos(radLat2) * pow(sin(b / 2), 2))));
dst = dst * EARTH_RADIUS;
dst = round(dst * 10000) / 10000;
return dst;
}
int main(int argc, const char* argv[])
{
double localtion1[] = { 22.562283, 113.942343 }; // 纬度1, 经度1
double localtion2[] = { 22.562274, 113.943067 }; // 纬度2, 经度2
double dst = get_distance(localtion1[0], localtion1[1], localtion2[0], localtion2[1]);
printf("dst = %f m\n", dst); // 74.433500 m
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/vjiot-open/location2distance.git
git@gitee.com:vjiot-open/location2distance.git
vjiot-open
location2distance
location2distance
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385