zoukankan      html  css  js  c++  java
  • C# 根据经度纬度计算两点的距离

    public class Earth  
        {  
            
    /// <summary>  
            
    /// 地球的半径  
            
    /// </summary>  
            public const double EARTH_RADIUS = 6378.137;  
      
            
    /// <summary>  
            
    /// 计算坐标点的距离  
            
    /// </summary>  
            
    /// <param name="begin">开始的经度纬度</param>  
            
    /// <param name="end">结束的经度纬度</param>  
            
    /// <returns>距离(公里)</returns>  
            public static double GetDistance(Point begin, Point end)  
            {  
                
    double lat = begin.RadLat - end.RadLat;  
                
    double lng = begin.RadLng - end.RadLng;  
      
                
    double dis = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(lat / 2), 2+ Math.Cos(begin.RadLat) * Math.Cos(end.RadLat) * Math.Pow(Math.Sin(lng / 2), 2)));  
                dis 
    = dis * EARTH_RADIUS;  
                dis 
    = Math.Round(dis * 1e4) / 1e4;  
      
                
    return dis;  
            }  
        }  
      
        
    /// <summary>  
        
    /// 代表经度, 纬度  
        
    /// </summary>  
        public class Point  
        {  
            
    /// <param name="lat">纬度 X</param>  
            
    /// <param name="lng">经度 Y</param>  
            public Point(double lat, double lng)  
            {  
                
    this.lat = lat;  
                
    this.lng = lng;  
            }  
      
            
    //  纬度 X  
            private double lat;  
      
            
    // 经度 Y  
            private double lng;  
      
            
    /// <summary>  
            
    /// 代表纬度 X轴  
            
    /// </summary>  
            public double Lat { setget; }  
      
            
    /// <summary>  
            
    /// 代表经度 Y轴  
            
    /// </summary>  
            public double Lng { getset; }  
      
            
    public double RadLat { get { return lat * Math.PI / 180; } }  
      
            
    public double RadLng { get { return lng * Math.PI / 180; } }  
        }  
  • 相关阅读:
    【More Effective C++】Item 4
    【More Effective C++】Item 3
    【More Effective C++】Item 2
    【More Effective C++】Item 1
    ”win7笔记本共享无线网络,手机连接成功却无法上网“的解决之道【亲身经历】
    【RFID防碰撞协议/算法】动态二进制搜索算法
    【RFID防碰撞协议/算法】二进制搜索防碰撞算法
    总结ASP标准控件
    总结ASP控件属性
    ..........
  • 原文地址:https://www.cnblogs.com/lizhao/p/1990426.html
Copyright © 2011-2022 走看看