【转】MySql根据经纬度获取附近的商家
2024-09-04 01:43:45
创建geo表
create table geo(
geo_id INT NOT NULL AUTO_INCREMENT,
lng float NOT NULL,
lat float NOT NULL,
name VARCHAR(100) NULL,
PRIMARY KEY ( geo_id )
);
INSERT INTO `geo`(`lng`, `lat`, `name`) VALUES (118.302416,33.958887,"实验小学");
INSERT INTO `geo`(`lng`, `lat`, `name`) VALUES (118.303997,33.95188,"宿迁市人民医院");
INSERT INTO `geo`(`lng`, `lat`, `name`) VALUES (118.302991,33.935828,"宿迁学院");
INSERT INTO `geo`(`lng`, `lat`, `name`) VALUES (118.28215,33.959307,"金陵名府");
INSERT INTO `geo`(`lng`, `lat`, `name`) VALUES (118.290081,33.925404,"润园");
INSERT INTO `geo`(`lng`, `lat`, `name`) VALUES (118.354751,33.959007,"国际馆");
SELECT
geo_id, `name`,(
6371 * acos (
cos ( radians(33.958887) )
* cos( radians( lat ) )
* cos( radians( lng ) - radians(118.302416) )
+ sin ( radians(33.958887) )
* sin( radians( lat ) )
)
) AS distance
FROM geo
HAVING distance < 20
ORDER BY distance
LIMIT 0 , 20;
其中33.958887是纬度,118.302416是经度,6371是地球的半径。
其他类似的资料:
https://www.jianshu.com/p/2d801e9cbadd
https://www.cnblogs.com/jiqing9006/p/8954831.html
https://blog.csdn.net/qq_42093488/article/details/81234990
https://blog.csdn.net/lvqingyao520/article/details/69667000
https://blog.csdn.net/Connie1451/article/details/80528737
最新文章
- UE4 创建进程,打开额外程序 方法 笔记
- js 正则表达式 转至(七郎&#39;s Blog)
- [linux] 默认权限修改(umask)
- varnish4.0简介
- ViewPager动态加载、删除页面
- c#(.net) 导出 word表格
- bzoj2584
- [NOIP2011]瑞士轮
- Html5 跨域通信
- A题笔记(6)
- 谨慎使用php的strtotime()函数
- Java面试02|Java集合
- mysql 时间格式化
- Jquery的过滤选择器分为哪几种?
- Exp6 信息搜集与漏洞扫描 20165110
- [Oracle]跨DBLINK的JOIN查询的数据库缓存问题15783452141
- 《Linux内核分析》第六周学习笔记
- 【Python】进程3
- 64位Win7系统下vs2010调试无法连接oracle解决办法
- MATLAB基础操作笔记