码迷,mamicode.com
首页 > Windows程序 > 详细

C# 获取两点(经纬度表示)间的距离

时间:2015-03-13 16:20:55      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:

#region 获取两点(经纬度表示)间的距离
/// <summary>
/// 获取两点(经纬度表示)间的距离
/// </summary>
/// <param name="p1Lat">第一点纬度值</param>
/// <param name="p1Lng">第一点经度值</param>
/// <param name="p2Lat">第二点纬度值</param>
/// <param name="p2Lng">第二点经度值</param>
/// <returns></returns>
public static double GetDistance(double p1Lat, double p1Lng, double p2Lat, double p2Lng)
{
double dLat1InRad = p1Lat * (Math.PI / 180);
double dLong1InRad = p1Lng * (Math.PI / 180);
double dLat2InRad = p2Lat * (Math.PI / 180);
double dLong2InRad = p2Lng * (Math.PI / 180);
double dLongitude = dLong2InRad - dLong1InRad;
double dLatitude = dLat2InRad - dLat1InRad;
double a = Math.Pow(Math.Sin(dLatitude / 2), 2) + Math.Cos(dLat1InRad) * Math.Cos(dLat2InRad) * Math.Pow(Math.Sin(dLongitude / 2), 2);
double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
double dDistance = EarthRadiusKm * c;
return dDistance;
}
/// <summary>
/// Radius of the Earth
/// </summary>
public static double EarthRadiusKm = 6378.137; // WGS-84
#endregion

C# 获取两点(经纬度表示)间的距离

标签:

原文地址:http://www.cnblogs.com/a-mumu/p/4335069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!