mysql 根据经纬度计算距离

news/2024/7/5 1:57:00
6378.138 * 2 * ASIN(
		SQRT(
			POW( SIN( ( : wd * PI( ) / 180-pa.wd * PI( ) / 180 ) / 2 ), 2 ) + COS( : wd * PI( ) / 180 ) * COS( pa.wd * PI( ) / 180 ) * POW( SIN( ( : jd * PI( ) / 180-pa.jd * PI( ) / 180 ) / 2 ), 2 ) 
		) 
	) AS juli
  1. 6378.138:这是地球的平均半径,单位是千米(km)。注意,这个值是一个近似值,并且地球的实际半径会因为纬度和海拔的变化而略有不同。
  2. ASIN(...):这是反正弦函数(Arcsine),用于从正弦值计算角度。
  3. SQRT(...):这是平方根函数,用于计算平方根。
  4. POW(..., 2):这是幂函数,用于计算数值的平方。
  5. SIN(...) 和 COS(...):这些是三角函数,分别表示正弦和余弦。
  6. :wd 和 :jd:这些是SQL参数或变量,分别代表给定的经度(west longitude)和纬度(north latitude)。
  7. pa.wd 和 pa.jd:这些可能是数据库表pa中的字段,代表另一个点的经度和纬度。
  8. PI():这是圆周率π的函数。

现在,我们来看看Haversine公式的核心部分:


复制代码
POW( SIN( ( : wd * PI( ) / 180-pa.wd * PI( ) / 180 ) / 2 ), 2 ) +   
COS( : wd * PI( ) / 180 ) * COS( pa.wd * PI( ) / 180 ) *   
POW( SIN( ( : jd * PI( ) / 180-pa.jd * PI( ) / 180 ) / 2 ), 2 )

这部分计算了两个点之间的“大圆角”(Great-Circle Angle),它是通过比较两个点的经纬度差异来得到的。然后,这个角度被用于计算两点之间的实际距离。

最终,这段代码通过乘以地球的平均半径和应用反正弦函数,得到了两个地理坐标点之间的近似距离(以千米为单位),并将其命名为juli

注意:虽然Haversine公式在大多数情况下都足够准确,但对于非常长的距离或需要高精度的情况,可能需要使用更复杂的算法或模型。


http://lihuaxi.xjx100.cn/news/2181000.html

相关文章

不是从APP store下载的APP在mac上一直提示有损坏,打不开怎么办?

1.点击设置 2.安全与隐私 3.通用看看允许从以下位置下载的APP是否有任何来源 4.如果没有,mac桌面点击🔍输入终端或Terminal 命令行输入下述代码: sudo spctl --master-disable 5.回车,输入mac开机密码。注意:此时密…

Python实现定时任务的三种方案——schedule、APScheduler、Celery

schedule schedule是一个轻量级的Python库,用于定期执行任务,即定时任务调度。它提供了一种简单直观的方式来自定义任务执行的时间规则,而无需复杂的线程或进程管理知识。schedule适用于那些需要在后台定期执行某些功能的Python应用程序&…

【解决】Tree prefab at index 8 is missing.

开发平台:Unity 2020 版本以上   问题描述 翻译:树预制体集合中第8位预制体丢失。   解决方法:修复丢失树资产 关联 Unity Terrier 组件使用,前往 树绘制工作区,检查 “树资产” 引用是否丢失?删除或重…

数字化的本质是什么?

数字化的本质其实就是把日常生活、工作等各个方面的信息、操作、交流等转化成数字形式,让它们更加便于存储、传输、分析和处理。简单说就是把各种各样的东西变成了0和1,让计算机能够更好地理解和运用这些信息。但数字化的本质并不只是简单地把事物变成数…

Python开发 我的世界 Painting-the-World: Minecraft 像素图片生成器

简介 Painting-the-World 是一款创新的工具,专为《我的世界》(Minecraft) 玩家及创作者设计,旨在将数字图片转变为游戏内的像素艺术。通过利用 RCON (Remote Console) 协议,本项目可以直接与《我的世界》服务器对话,根据输入的图…

平衡二叉树的应用举例

AVL 是一种自平衡二叉搜索树,其中任何节点的左右子树的高度之差不能超过 1。 AVL树的特点: 1、它遵循二叉搜索树的一般属性。 2、树的每个子树都是平衡的,即左右子树的高度之差最多为1。 3、当插入新节点时,树会自我平衡。因此…

LDRA Testbed(TBrun)软件单元测试_操作指南

系列文章目录 LDRA Testbed软件静态分析_操作指南 LDRA Testbed软件静态分析_自动提取静态分析数据生成文档 LDRA Testbed软件静态分析_Jenkins持续集成_(1)自动进行静态分析的环境搭建 LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果 LDRA Testb…

linux中的“->“符号

问: "->“符号在Linux中是什么意思。 例如:当我在一个特定的文件夹中执行ls -l时,我得到了以下结果。 lrwxrwxrwx 1 root root 11 May 16 13:30 nexus3 -> /nexus-data lrwxrwxrwx 1 root root 29 Feb 27 12:23 ojdbc.jar -&g…