千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,建表CREATE TABLE `map` ( `id` int(11) NOT NULL, `address` varchar(255) NOT NULL DEFAULT '', `location`
千家信息网最后更新 2026年11月01日使用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安全错误 数据库的锁怎样保障安全 上海挚品互联网科技 紫鲸互联网科技 广州互联网络科技有限公司 科技创新互联网企业 新华互联网科技校企合作 太原新华互联网科技学校怎么样 中国最先进互联网科技公司 青岛中康互联网医疗科技有限公司 须眉科技是互联网公司吗 宁波青枫互联网科技有限公司 剑昆互联网络科技有限公司临桂 互联网科技商业 健康食品互联网创新科技园项目 燊美集互联网科技有限公司 智帮互联网科技公司最近动向 扫呗互联网科技有限公司 济南小医互联网科技有限公司招聘 互联网科技手机排行榜 同城互联网络科技 华人运通互联网科技公司 美国互联网保险保险科技 奇酷互联网科技 掌上梦互联网科技 互联网科技热点资讯 互联网科技中介 崇明区互联网教育科技售后服务 恒生互联网科技指数跳水 玉溪新华互联网科技好不好 马化腾互联网科技教学 现代互联网科技公司
0