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

建表

成都网站制作、成都网站建设、外贸营销网站建设介绍好的网站是理念、设计和技术的结合。成都创新互联拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。

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;

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


网站题目:使用MySQL的geometry类型处理经纬度距离问题的方法
标题来源:http://bzwzjz.com/article/poghsi.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 营销网站建设 品牌网站建设 古蔺网站建设 移动网站建设 企业网站建设公司 温江网站设计 成都网站设计公司 成都模版网站建设 广安网站设计 营销型网站建设 网站设计 成都网站建设 网站设计公司 成都网站建设 成都网站设计 网站建设改版 成都网站制作 成都网站设计制作公司 公司网站建设 成都网站建设 成都网站建设 成都网站制作