/// <summary>
/// 地球半径
/// </summary>
private const double EARTH_RADIUS = 6378.137;
/// <summary>
/// 计算两点间的距离,传入两点的经度和纬度
/// </summary>
/// <param name="lat1"></param>
/// <param name="lng1"></param>
///<param name="lat2"></param>
/// <param name="lng2"></param>
/// <returns></returns>
public static double GetDistance(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 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) +
Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin(b / 2), 2)));
s = s * EARTH_RADIUS;
s = Math.Round(s * 10000) / 10000;
return s;
}
private static double rad(double d)
{
return d * Math.PI / 180.0;
}
asp.Net + google map根据坐标点计算行动里程数
最新推荐文章于 2021-11-05 16:37:12 发布
本文介绍了一种计算地球表面两点间直线距离的方法,利用经纬度坐标通过公式计算距离,考虑了地球的非完美球形特性。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Anything-LLM
AI应用
AnythingLLM是一个全栈应用程序,可以使用商用或开源的LLM/嵌入器/语义向量数据库模型,帮助用户在本地或云端搭建个性化的聊天机器人系统,且无需复杂设置
2万+

被折叠的 条评论
为什么被折叠?



