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; } }  
        }  
  • 相关阅读:
    Expedition(POJ 2431)
    spring异步@Async原理和注意问题
    springBoot事件
    spring定时任务原理
    BeanFactory和FactoryBean的区别
    Spring容器启动流程——源码阅读分析
    spring循环依赖
    spring相关的问题和原因分析
    zookeeper原理
    zookeeper的使用
  • 原文地址:https://www.cnblogs.com/lizhao/p/1990426.html
Copyright © 2011-2022 走看看