千家信息网

使用MySQL的geometry类型处理经纬度距离问题的方法

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,建表CREATE TABLE `map` ( `id` int(11) NOT NULL, `address` varchar(255) NOT NULL DEFAULT '', `location`
千家信息网最后更新 2024年11月20日使用MySQL的geometry类型处理经纬度距离问题的方法

建表

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;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

经纬 经纬度 之间 代码 查询 内容 函数 单位 地点 就是 空格 纬度 经度 结果 逗号 学习 帮助 排序 支持 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 电脑上的软件开发用什么工具 dbtg数据库管理系统 ea服务器无法进入 计算机网络技术哪家强 web时代的网络安全威胁 软件开发服务报价表 安全组怎么调能连接服务器 智能家居系统用网络技术是 云服务器一年价格 计算机网络技术实践报告结论 qq登录服务器超时请重试 新疆软件开发有限公司 网络安全渗透测试工程师 工资 涉及网络安全的法律有哪些 初级数据库管理面试要求 栾川县网络安全和互联网中心 mydql数据库迁移到另外硬盘 服务器需要显卡性能吗 关于网络安全问题的的演讲 数据库利润表设计 2017年浙江省网络安全 关于金融软件开发的公司官网 骗子公司玖舜软件开发有限公司 河北金税盘安全接入服务器地址 光功率预测服务器价格 怎么把饥荒专用服务器mod关掉 翼支付软件开发岗 关于计算机网络技术视频 局网络安全机构 浙江桌面软件开发
0