sql 经纬度范围检索(谷歌方案)
2024-09-02 08:27:52
SELECT
id, (
6371 * acos ( //公里: 6371 英里: 3959
cos ( radians(78.3232) )
* cos( radians( 数据库纬度字段) )
* cos( radians( 数据库经度字段) - radians(65.3234) )
+ sin ( radians(78.3232) )
* sin( radians( latitude ) )
)
) AS distance ,
name
FROM tb_hotel
HAVING distance < 0.4
ORDER BY distance
LIMIT 0 , 20;
该SQL语句将找到距离纬度:78.3232、经度:65.3234坐标0.4公里里范围内最近的20个位置。它根据该行的经纬度和目标经纬度计算距离,然后只要求距离值小于0.4公里的行,按距离对整个查询排序,并将其限制为20个结果。
转自:https://www.iteye.com/blog/justcoding-2224906 上面有更多的方案
最新文章
- &;nbsp;空格用法
- spring web mvc中遇到的错误以及学习小记(持续记录)
- J2EE中EL表达式
- NYOJ题目1047欧几里得
- log4net 发布到生产环境不写日志的解决方法--使用 NLog日志
- Leetcode 179 Largest Number 贪心
- input:focus
- Hanoi T note
- php get传递数据
- Android---3种方式限制EditView输入字数(转载)
- Storm中的LocalState 代码解析
- 【JAVA】别特注意,POI中getLastRowNum() 和getLastCellNum()的区别
- 51单片机模拟I2C总线的C语言实现
- 序列化layer创建的弹出表单并ajax提交
- hdu Color the ball
- C语言之二维数组
- cmstop框架中的js设计content.js
- WPF从我炫系列4---装饰控件的用法
- 使用nodeJS的 crypto模块来为你的密码hash加盐
- profile bashrc bash_profile之间的区别和联系