博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql通过经纬度查询400公里范围内的小区
阅读量:5240 次
发布时间:2019-06-14

本文共 852 字,大约阅读时间需要 2 分钟。

mysql距离计算,单位m,以及排序
lng 经度 lat 纬度
一般地图上显示的坐标顺序为,纬度在前(范围-90~90),经度在后(范围-180~180)
传入参数 纬度 40.0497810000 经度 116.3424590000
/*传入的参数为  纬度 纬度 经度 ASC升序由近至远 DESC 降序 由远到近 */

SELECT

id,
name,
address,
ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW(
SIN(
(
40.0497810000 * PI() / 180 - lat * PI() / 180
) / 2
),
2
) + COS(40.0497810000 * PI() / 180) * COS(lat * PI() / 180) * POW(
SIN(
(
116.3424590000 * PI() / 180 - lng * PI() / 180
) / 2
),
2
)
)
) * 1000
) AS 距离
FROM
oc_district
HAVING
距离 < 400000
ORDER BY
距离 ASC

 

至此,我们就能清楚的查看到纬度 40.0497810000 经度 116.3424590000 距离    小区表中的每个小区到传入地点的距离(单位 m)

 

 

方法二:通过MySQL的POIN方法

st_distance 计算的结果单位是度,需要乘111195(地球半径6371000*PI/180)是将值转化为米。 sql: SELECT    *,    (st_distance (point (lon,lat),point (116.3424590000,40.0497810000))*111195/1000 )as juli FROM customer ORDER BY juli ASC

转载于:https://www.cnblogs.com/Soy-technology/p/10979817.html

你可能感兴趣的文章
实验四
查看>>
网站迁移时候,发现<head>内容都到body里了
查看>>
前端开发实现自动化编译与部署
查看>>
3W法则-学习Docker
查看>>
Elastic Stack-Elasticsearch使用介绍(三)
查看>>
MacOS copy图标shell脚本
查看>>
linux 性能分析工具整理
查看>>
关于在Servelet中如何获取当前时间的操作
查看>>
怎么打包谷歌商店安装的文件?
查看>>
C陷阱与缺陷--读书笔记7 可移植性缺陷
查看>>
【索引】gtest学习笔记
查看>>
vue-随笔-transition
查看>>
第八章 方法
查看>>
【资源下载】Ext4.1.0_Doc中文版_V1.0.0_Beta正式提供下载!
查看>>
ThinkPHP 3.2.3 数据缓存与静态缓存
查看>>
挑战(一):两周自己动手写CPU(1)
查看>>
【生活大小事】空调事件
查看>>
多线程编程学习一(Java多线程的基础).
查看>>
fk输入地壳模型容易出错的地方
查看>>
web调用客户端程序
查看>>