使用MySQL的geometry类型处理经纬度距离问题的方法
作者:Shawn 发布时间:2024-01-21 15:44:06
标签: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;
来源:https://segmentfault.com/a/1190000018072395


猜你喜欢
- 在 MySQL下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却
- Javascript 实现计算器:系列文章:JS 实现计算器详解及实例代码(一)Javascript 实现计算器时间功能详解及实例(二)小型
- 1:UEditor-plus富文本编辑器如何在vue项目中使用备注:UEditor是由百度web前端研发部开发的所见即所得的开源富文本编辑器
- Javascript中的eval函数让我们可以很方便地操作一系列变量(a1,a2,a3,……)。自从VBScript 5.0之后,我们也可以
- 说实在的个人对游戏并没有多大的兴趣,但唯独对暴雪的Diablo系列很有感情,去年年初开始玩Diablo3,断断续续,感觉最麻烦的是选择技能,
- 使用python进行程序编写时,经常会使用第三方模块包。这种包我们可以通过python setup install 进行安装后,通过impo
- 1.如何在网页中插入空格 我们在用Dreamweaver的所见即所得编辑模式下编辑中文网页时,往往需要
- 我就废话不多说了,直接上代码吧!obj = Obj.objects.get(id=1)print obj.name #此时name的值假定为
- 本文实例讲述了Go语言算法之寻找数组第二大元素的方法。分享给大家供大家参考。具体如下:该算法的原理是,在遍历数组的时,始终记录当前最大的元素
- 1.TCP是一种面向连接的可靠地协议,在一方发送数据之前,必须在双方之间建立一个连接,建立的过程需要经过三次握手,通信完成后要拆除连接,需要
- 处于兴趣,写了一个遍历指定城市五天内的天气预报,并转为华氏度显示。把城市名字写到一个列表里这样可以方便的添加城市。并附有详细注释import
- 前言本项目为IOT实验室人员签到考勤设计,系统实现功能:1.人员人脸识别并完成签到/签退2.考勤时间计算3.保存考勤数据为CSV格式(Exc
- 一、Pycharm安装Django框架二、新建Django项目1、manage.py是个管理角色,拥有的功能包括:(1)创建app: pyt
- 定义函数:CREATE FUNCTION [dbo].[GetAge] ( @BirthDay nvarchar(2
- 以下是我做美工的两年生活中一条条总结出来的经验,每一点都是我常用的,虽然不是什么大学问,但我觉得要互相学习才能提高,所以现在拿出来和大家一起
- #coding=utf8__author__ = 'Administrator'# 当函数的参数不确定时,可以使用*args
- 使用expdp时,遇到”ORA-39002、ORA-39070......”连续报错。1、 遇到的问题C:\Users\Admi
- 前言随着深度学习的不断发展,从开山之作Alexnet到VGG,网络结构不断优化,但是在VGG网络研究过程中,人们发现随着网络深度的不断提高,
- 如下所示:#coding:utf-8 ''''' Created on 2014-7-24 @aut
- 本文实例为大家分享了python生成验证码图片代码,分享给大家供大家参考,具体内容如下基本上大家使用每一种网络服务都会遇到验证码,一般是网站