根据经纬度计算距离

简介: #region 计算经纬度 private const double EARTH_RADIUS = 6378137; /// /// 计算两点位置的距离,返回两点的距离,单位 米 /// 该公式为GOOGLE提供,误差小于0.
        #region 计算经纬度
        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;
        }
        #endregion
View Code

 

相关文章
|
4月前
|
API 定位技术 数据安全/隐私保护
微信加好友频繁怎么解决?有方法吗
微信加好友频繁的成因分析与系统解决方案
|
存储 人工智能 数据处理
阿里云CTO周靖人:全面投入升级AI大基建
9月19日,在2024杭州云栖大会上,阿里云CTO周靖人表示,阿里云正在围绕AI时代,树立一个AI基础设施的新标准,全面升级从服务器到计算、存储、网络、数据处理、模型训练和推理平台的技术架构体系,让数据中心成为一台超级计算机,为每个AI和应用提供高性能、高效的算力服务。
23403 15
|
小程序 安全 前端开发
【开题报告】基于微信小程序的校园订餐平台的设计与实现
【开题报告】基于微信小程序的校园订餐平台的设计与实现
1238 0
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
822 7
Jmeter实现WebSocket协议的接口测试方法
|
Ubuntu Linux Shell
10-23|如何查看linux当前时间
10-23|如何查看linux当前时间
|
网络协议 数据库 网络架构
一张图带你精通 OSPF 8种邻居状态机!
【4月更文挑战第25天】
2189 0
一张图带你精通 OSPF 8种邻居状态机!
|
Java 定位技术 Maven
Java:计算地球上两个经纬度坐标之间的距离-geodesy和geotools实现
Java:计算地球上两个经纬度坐标之间的距离-geodesy和geotools实现
2850 1
|
算法 Java Python
jts里的lineString.getLength()的单位是什么如何换算成距离
【6月更文挑战第7天】jts里的lineString.getLength()的单位是什么如何换算成距离
768 0
|
开发工具 git 缓存
初识git:IntelliJ IDEA配置git步骤及如何将本地仓库项目上传至git仓库步骤详解
步骤一:访问git官网(https://gitforwindows.org/)下载所需git安装包。 步骤二:IDEA==》file==》setting==》如图①==》如图② 步骤三:在弹出界面搜索gitee插件下载并安装,安装步骤直接点击下一步直至安装成功即可。
5549 0
|
SQL 资源调度 Java
flink cdc 连接池问题之调整大小如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。

热门文章

最新文章