通过经纬度进行距离的测试
select * from locations where
3979*ACOS(COS(RADIANS(lat))*COS(RADIANS(38.03))*COS(RADIANS(lon)-RRADIANSRADIANS(-78))+SIN(RADIANS(lat))*SIN(RADIANS(38.03)))<100;
小于100距离的地址
小于100距离的地址
+----+--------+-------+-----+
| id | name | lat | lon |
+----+--------+-------+-----+
| 1 | 上海 | 39.02 | -78 |
+----+--------+-------+-----+
1 row in set (0.00 sec)
使用sql与语句:
这里使用的是3979是英里,千米的长度是6371
select id,name,(6379*ACOS(COS(RADIANS(lat))*COS(RADIANS(39.95905000000002))*COS(RADIANS(lon)-RADIANS(116.46644000000003))+SIN(RADIANS(lat))*SIN(RADIANS(39.95905000000002)))) from locations;
算出来的结果是公里
因为单位中乘的就是公里