C#计算两点间的距离
生活随笔
收集整理的這篇文章主要介紹了
C#计算两点间的距离
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
???? * 計算兩個經緯度之間的距離
???? * guoqing 2010-9-2
???? */
??? private const double EARTH_RADIUS = 6378.137;
??? private static double rad(double d)
??? {
??????? return d * Math.PI / 180.0;
??? }
??? //double dis = Function.GetDistance(38.03430117880767, 114.43754196166992, 38.03619406237629, 114.57710266113281);//東二環(huán)到西二環(huán)
??? 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;
??? }
???? * 計算兩個經緯度之間的距離
???? * guoqing 2010-9-2
???? */
??? private const double EARTH_RADIUS = 6378.137;
??? private static double rad(double d)
??? {
??????? return d * Math.PI / 180.0;
??? }
??? //double dis = Function.GetDistance(38.03430117880767, 114.43754196166992, 38.03619406237629, 114.57710266113281);//東二環(huán)到西二環(huán)
??? 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;
??? }
總結
以上是生活随笔為你收集整理的C#计算两点间的距离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小点点软件对你非常实用
- 下一篇: 今天的弹指一瞬间的飞鸽传书