C#计算两个经纬度的距离

 //地球半径,单位米
        private const double EARTH_RADIUS = 6378137;
        /// <summary>
        /// 计算两点位置的距离,返回两点的距离,单位 米
        /// 该公式为GOOGLE提供,误差小于0.2米
        /// </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 radLng1 = Rad(lng1);
            double radLat2 = Rad(lat2);
            double radLng2 = Rad(lng2);
            double a = radLat1 - radLat2;
            double b = radLng1 - radLng2;
            double result = 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))) * EARTH_RADIUS;
            return result;
        }

        /// <summary>
        /// 经纬度转化成弧度
        /// </summary>
        /// <param name="d"></param>
        /// <returns></returns>
        private static double Rad(double d)
        {
            return (double)d * Math.PI / 180d;
        }

  

时间: 2024-11-07 17:09:04

C#计算两个经纬度的距离的相关文章

java 计算两个经纬度之间距离

public class Distance{ private static final double EARTH_RADIUS = 6378137;    private static double rad(double d)    {       return d * Math.PI / 180.0;    }        /**     * 根据两点间经纬度坐标(double值),计算两点间距离,单位为米     * @param lng1     * @param lat1     * 

计算两组经纬度座标间的距离

1 /** 2 * 计算两组经纬度座标间的距离 3 * params:lat1纬度1,lng1经度1,lat2纬度2,lng2经度2,len_type(1:m|2:km); 4 * Echo GetDistance($lat1,$lng1,$lat2,$lng2).'米'; 5 */ 6 function GetDistance($lat1,$lng1,$lat2,$lng2,$len_type=1,$decimal=2){ 7 $EARTH_RADIUS=6378.137; //地球半径,假设

计算两个经纬度之间的距离

//计算两个经纬度之间的距离 /** * 计算两点地理坐标之间的距离 * @param Decimal $longitude1 起点经度 * @param Decimal $latitude1 起点纬度 * @param Decimal $longitude2 终点经度 * @param Decimal $latitude2 终点纬度 * @param Int $unit 单位 1:米 2:公里 * @param Int $decimal 精度 保留小数位数 * @return Decimal

计算两个经纬度点间的距离

纬度线投射在图上看似水平的平行线,但实际上是不同半径的圆.有相同特定纬度的所有位置都在同一个纬线上. 赤道的纬度为0°,将行星平分为南半球和北半球. 纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间.位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S.纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区.赤道.南回归线.北回归线.南极圈和北极圈是特殊的纬线.纬度1

IOS 计算两个经纬度之间的距离

一 丶 -(double)distanceBetweenOrderBy:(double) lat1 :(double) lat2 :(double) lng1 :(double) lng2{ CLLocation *curLocation = [[CLLocation alloc] initWithLatitude:lat1 longitude:lng1]; CLLocation *otherLocation = [[CLLocation alloc] initWithLatitude:lat2

计算两个经纬度之间的距离(python算法)

EARTH_REDIUS = 6378.137 def rad(d): return d * pi / 180.0 def getDistance(lat1, lng1, lat2, lng2): radLat1 = rad(lat1) radLat2 = rad(lat2) a = radLat1 - radLat2 b = rad(lng1) - rad(lng2) s = 2 * math.asin(math.sqrt(math.pow(sin(a/2), 2) + cos(radLat1

PHP计算两个经纬度地点之间的距离

/**  * 求两个已知经纬度之间的距离,单位为米  *   * @param lng1 $ ,lng2 经度  * @param lat1 $ ,lat2 纬度  * @return float 距离,单位米  * @author www.Alixixi.com   */ function getdistance($lng1, $lat1, $lng2, $lat2) {     // 将角度转为狐度     $radLat1 = deg2rad($lat1); //deg2rad()函数将角

Swift计算两个经纬度之间的球面面积

func distanceBetween(#lat1: Float, lng1: Float, lat2: Float, lng2: Float) -> Float{ var jl_jd: Float = 102834.74258026089786013677476285 var jl_wd: Float = 111712.69150641055729984301412873 var b: Float = abs((lng1 - lng2) * jl_jd) var a: Float = abs

给你两个经纬度,计算他们之间的距离

原文:给你两个经纬度,计算他们之间的距离 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作“赤道”.在赤道的南北两边,画出许多和赤道平行的圆圈,就是“纬圈”:构成这些圆圈的线段,叫做纬线.我们把赤道定为纬度零度,向南向北各为90度,在赤道以南的叫南纬,在赤道以北的叫北纬.北极就是北纬90度,南极就是南纬90度.纬度的高低也标志着气候的冷热,如赤道和低纬度地