使用MySQL的geometry类型处理经纬度距离问题的方法
作者:Shawn 时间:2024-01-21 15:44:06
建表
CREATE TABLE `map` (
`id` int(11) NOT NULL,
`address` varchar(255) NOT NULL DEFAULT '',
`location` geometry NOT NULL,
PRIMARY KEY (`id`),
SPATIAL KEY `idx_location` (`location`)
)
插入
INSERT INTO map (id, address, location) VALUES (1, 'somewhere', ST_GeomFromText('POINT(121.366961 31.190049)'));
注意必须使用 ST_GeomFromText 函数,且 POINT() 里面是:经度+空格+纬度
查询
1. 查看经纬度
SELECT address, ST_AsText(location) AS location FROM map;
2. 计算两点之间的距离
SELECT ST_Distance_Sphere(POINT(121.590347, 31.388094),location) AS distant FROM map;
算出来的结果,单位是米
注意现在POINT()里面经纬度之间是逗号分隔的
3. 查询距离小于1000m的地点,并由远及近排序
SELECT id, address, ST_Distance_Sphere(POINT(121.590347, 31.388094),location) AS distant FROM map WHERE ST_Distance_Sphere(POINT(121.590347, 31.388094),location) < 1000 ORDER BY distant;
来源:https://segmentfault.com/a/1190000018072395
标签:MySQL,geometry,经纬度
0
投稿
猜你喜欢
mysql日志文件在哪 如何修改MySQL日志文件位置
2024-01-22 22:09:14
pytorch掉坑记录:model.eval的作用说明
2023-01-07 11:52:18
python 判断linux进程,并杀死进程的实现方法
2022-06-24 22:31:54
细品Dreamweaver MX 2004内建FW技术
2010-09-02 12:38:00
Python中operator模块的操作符使用示例总结
2023-01-31 12:32:14
ES6正则表达式扩展笔记
2024-04-18 10:00:12
Python Pandas list列表数据列拆分成多行的方法实现
2021-04-20 18:56:01
Python解惑之True和False详解
2022-06-02 20:28:03
简单谈谈mysql左连接内连接
2024-01-13 06:54:24
Django用内置方法实现简单搜索功能的方法
2021-09-15 21:02:52
Python 实现图像合成微缩效果
2023-08-19 22:15:16
Python绘制股票移动均线的实例
2023-07-15 10:31:06
SQLserver 实现分组统计查询(按月、小时分组)
2024-01-24 12:52:15
Golang在Mac、Linux、Windows下如何交叉编译的实现
2024-02-23 06:00:02
Selenium自动化测试工具使用方法汇总
2022-02-10 16:26:21
详解Python3定时器任务代码
2023-10-15 14:50:26
Web 开发常用工具 大家自己查找下载
2022-09-20 23:58:30
TypeScript中泛型的使用详细讲解
2024-04-17 10:35:23
秒杀场景的缓存、队列、锁使用Redis优化设计方案
2023-05-29 19:07:18
如何使用PyCharm及常用配置详解
2021-09-22 14:59:47