mysql 两点间距离_MySQL实现计算两点之间的距离

这篇博客介绍了如何在MySQL中创建一个存储过程,用于计算地球上两点之间的距离。通过将经纬度转换为弧度并应用数学公式,实现了精确的距离计算。内容包括函数定义、示例调用和其他数据库系统如Oracle、SQL Server的类似实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DELIMITER $$

CREATE FUNCTION `calculateLineDistance`(startLng double, startLat double, endLng double, endLat double) RETURNS double

BEGIN

declare d2 DOUBLE;

declare d3 DOUBLE;

declare d4 DOUBLE;

declare d5 DOUBLE;

declare d6 DOUBLE;

declare d7 DOUBLE;

declare d8 DOUBLE;

declare d9 DOUBLE;

declare d10 DOUBLE;

declare d11 DOUBLE;

declare d12 DOUBLE;

declare d13 DOUBLE;

declare d14 DOUBLE;

declare arrayOfDouble10 DOUBLE;

declare arrayOfDouble11 DOUBLE;

declare arrayOfDouble12 DOUBLe;

declare arrayOfDouble20 DOUBLE;

declare arrayOfDouble21 DOUBLE;

declare arrayOfDouble22 DOUBLE;

set d2 = startLng * 0.01745329251994329;

set d3 = startLat * 0.01745329251994329;

set d4 = endLng * 0.01745329251994329;

set d5 = endLat * 0.01745329251994329;

set d6 = sin(d2);

set d7 = sin(d3);

set d8 = cos(d2);

set d9 = cos(d3);

set d10 = sin(d4);

set d11 = sin(d5);

set d12 = cos(d4);

set d13 = cos(d5);

set arrayOfDouble10 = (d9 * d8);

set arrayOfDouble11 = (d9 * d6);

set arrayOfDouble12 = d7;

set arrayOfDouble20 = (d13 * d12);

set arrayOfDouble21 = (d13 * d10);

set arrayOfDouble22 = d11;

set d14 = sqrt((arrayOfDouble10 - arrayOfDouble20) * (arrayOfDouble10 - arrayOfDouble20)

+ (arrayOfDouble11 - arrayOfDouble21) * (arrayOfDouble11 - arrayOfDouble21)

+ (arrayOfDouble12 - arrayOfDouble22) * (arrayOfDouble12 - arrayOfDouble22));

return (asin(d14 / 2.0) * 12742001.579854401);

END $$

DELIMITER ;

a9b04dabb2e40194898700b8d50139ee.png准确度可以

mysql oracle计算两点之间的距离

mysql函数: SET FOREIGN_KEY_CHECKS=0; DROP FUNCTION IF EXISTS `getDistance`;DELIMITER ;;CREATE DEFINER= ...

sql server2008根据经纬度计算两点之间的距离

--通过经纬度计算两点之间的距离 create FUNCTION [dbo].[fnGetDistanceNew] --LatBegin 开始经度 --LngBegin 开始维度 --29.49029 ...

2D和3D空间中计算两点之间的距离

自己在做游戏的忘记了Unity帮我们提供计算两点之间的距离,在百度搜索了下. 原来有一个公式自己就写了一个方法O(∩_∩)O~,到僵尸到达某一个点之后就向另一个奔跑过去 ///

js通过经纬度计算两点之间的距离

最近这几天在做地图的时候,获取到目的地经纬度和当前所在位置的经纬度,通过这几个参数,用js代码就能获取到这两点之间的直线距离: function (lat1, lng1, lat2, lng2) { ...

IOS计算两点之间的距离

//广州经纬度 CLLocationCoordinate2D guangZhouLocation; guangZhouLocation.latitude = 23.20; guangZhouLocat ...

Java 根据经纬度计算两点之间的距离

package xxx.driver.business.utils; /** *

Represents a point on the surface of a sphere. (Th ...

J - 计算两点间的距离

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 输入两 ...

mysql 下 计算 两点 经纬度 之间的距离(转)

公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2* ...

mysql 下 计算 两点 经纬度 之间的距离

公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2* ...

随机推荐

【剑指offer 面试题14】调整数组顺序使奇数位于偶数前面

思路: 头尾指针,向中间遍历,依据条件交换元素. #include using namespace std; void reOrder(int *pData, uns ...

Silverlight 中 TreeView 的数据绑定

方法一:Silverlight使用XAML标记语言来编写,如果不使用XAML强大的绑定功能,实在是罪过.通过使用绑定,可以将UI与视图模型层分离,有利于系统的维护.作为Silverlight中比较有代 ...

HDU 1525 Euclid's Game

题目大意: 题目给出了两个正数a.b 每次操作,大的数减掉小的数的整数倍.一个数变为0 的时候结束. 谁先先把其中一个数减为0的获胜.问谁可以赢.Stan是先手. 题目思路: 无论a,b的值为多少,局 ...

学习Timer定时器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值