我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql计算两点之间距离st_distance_sphere函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql计算两点之间距离st_distance_sphere函数

mysql5.6提供了st_distance函数,
mysql5.7提供了st_distance_sphere函数。

st_distance_sphere函数是mysql5.7提供的,可以直接查询两个经纬度之间相距多少米,并且该函数的计算结果要比st_distance转换为米的结果更精确。
而st_distance则需要自己进行计算转换为单位米。

表结构

CREATE TABLE `st_distance_data` (  `id` bigint(20) NOT NULL AUTO_INCREMENT,  `created_time` datetime NOT NULL,  `updated_time` datetime NOT NULL,  `name` varchar(50) NOT NULL,  `lng` decimal(15,12) NOT NULL,  `lat` decimal(15,12) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;



测试数据

INSERT INTO `st_distance_data` (`id`, `created_time`, `updated_time`, `name`, `lng`, `lat`) VALUES ('1', '2023-06-19 10:09:00', '2023-06-19 10:09:03', '泉州市客运中心站', '118.611379106110', '24.885678000544');INSERT INTO `st_distance_data` (`id`, `created_time`, `updated_time`, `name`, `lng`, `lat`) VALUES ('2', '2023-06-19 10:09:18', '2023-06-19 10:09:21', '泉州市城东万达麦当劳', '118.656780339160', '24.915820013248');INSERT INTO `st_distance_data` (`id`, `created_time`, `updated_time`, `name`, `lng`, `lat`) VALUES ('3', '2023-06-19 10:09:34', '2023-06-19 10:09:36', '泉州市中骏世界城永辉超市', '118.659432662340', '24.920755765732');INSERT INTO `st_distance_data` (`id`, `created_time`, `updated_time`, `name`, `lng`, `lat`) VALUES ('4', '2023-06-19 10:09:48', '2023-06-19 10:09:50', '泉州市洛江大润发', '118.666656315130', '24.933292370776');INSERT INTO `st_distance_data` (`id`, `created_time`, `updated_time`, `name`, `lng`, `lat`) VALUES ('5', '2023-06-19 14:33:23', '2023-06-19 14:33:21', '泉州市华创园', '118.652468906910', '24.927268718491');


距离计算并从近到远排序

SELECT name as 名称, ST_Distance_Sphere(    POINT(118.652468906910, 24.927268718491),    POINT(lng, lat)) AS `距离(米)`FROM st_distance_data order by `距离(米)`;


计算结果(单位:米)

名称

距离(米)

泉州市华创园

0

泉州市中骏世界城永辉超市

1008.753027699925

泉州市城东万达麦当劳

1345.2294046747454

泉州市洛江大润发

1579.6067079739778

泉州市客运中心站

6209.7169036519035

来源地址:https://blog.csdn.net/weixin_42683476/article/details/131308870

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql计算两点之间距离st_distance_sphere函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP如何计算两个字符串之间的编辑距离

编辑距离衡量字符串相似度,计算转换一个字符串到另一个所需的最小编辑操作数(插入、删除、替换)。PHP中可使用levenshtein()函数计算编辑距离,similar_text()函数计算相似度百分比,StringDiff对象生成差异报告。优化计算可限制编辑操作数、使用滚动数组、或使用位图。编辑距离应用包括拼写检查、文本差异、信息检索和机器翻译。
PHP如何计算两个字符串之间的编辑距离
2024-04-02

Java如何计算两个字符串之间的编辑距离

Java中计算两个字符串之间的编辑距离(莱文斯坦距离)是一个测量字符串相似性的重要指标。莱文斯坦距离算法基于动态规划,通过存储编辑操作次数,计算将一个字符串转换为另一个字符串所需的最小操作次数。该算法在自然语言处理、拼写检查和模糊搜索等应用中广泛使用。
Java如何计算两个字符串之间的编辑距离
2024-04-02

利用java、js或mysql计算高德地图中两坐标之间的距离

前言因为工作的原因,最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了相关计算方法,供大家参考,下面话不多说了,
2023-05-31

oracle中计算两个日期之间天数的函数

oracle 中计算两个日期之间天数的函数是 datediff()。具体用法如下:指定时间间隔单位:interval(如 day、month、year)指定两个日期值:date1 和 date2datediff(interval, date
oracle中计算两个日期之间天数的函数
2024-05-08

VB计算两个日期/时间之间的差(DateDiff函数)

在VB中,可以使用`DateDiff`函数来计算两个日期/时间之间的差值。该函数的语法如下:```vbDateDiff(interval, date1, date2, [firstdayofweek], [firstweekofyear])
2023-09-16

MySQL 计算两个日期/时间之间相差的天数、分钟数、秒数...

MySQL 中经常遇到计算两个日期或者时间之间相差的天数、周数、小时数、分钟、秒等等,下面分享一个MySQL内置的函数:TimeStampDiff() 这个函数是MySQL本身提供的可以计算两个时间间隔的函数。 语法: TIMESTAMPD
2023-08-16

如何计算 MySQL 中两个指定日期之间的完整 24 小时天数?

在 DATEDIFF() 函数中,仅使用值的日期部分进行计算,因此我们可以使用 TIMESTAMPDIFF() 函数来计算两个指定日期之间的完整 24 小时天数。例如,如果我们想要查找 '2017-05-27 11:59:00' 和 201
2023-10-22

编程热搜

目录