根據高德地圖兩點坐標獲取兩點實際距離,用于高德地圖標記點范圍內距離計算
/// <summary>
/// 獲取高德地圖兩坐標點間的距離
/// </summary>
/// <param name="lat1">點1橫坐標</param>
/// <param name="lng1">點1縱坐標</param>
/// <param name="lat2">點2橫坐標</param>
/// <param name="lng2">點2縱坐標</param>
/// <returns></returns>
public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
try
{
var b = Math.PI / 180;
var c = Math.Sin((lat2 - lat1) * b / 2);
var d = Math.Sin((lng2 - lng1) * b / 2);
var a = c * c + d * d * Math.Cos(lat1 * b) * Math.Cos(lat2 * b);
return 12756274 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
}
catch (Exception)
{
return 0;
}
}