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; } }  
        }  
  • 相关阅读:
    实验axios用户登录及token验证
    vue的路由跳转了,可是页面没有变化
    搞清楚cookie,session,token,JWT
    APP应用测试流程
    Scrum敏捷开发
    APP项目环境及发布平台
    ssh -T git@github.com ssh: connect to host github.com port 22: Connection timed out
    pytest与unitest区别
    数据库三大范式--大白话
    docker 安装mysql挂载/var/lib/mysql目录时启动就退出
  • 原文地址:https://www.cnblogs.com/lizhao/p/1990426.html
Copyright © 2011-2022 走看看