MySQL中通过经纬度查询地址

通过经纬度进行距离的测试
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距离的地址
+----+--------+-------+-----+
| id | name | lat | lon |
+----+--------+-------+-----+
| 1 | 上海 | 39.02 | -78 |
+----+--------+-------+-----+
1 row in set (0.00 sec)

MySQL中通过经纬度查询地址

使用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;

MySQL中通过经纬度查询地址

算出来的结果是公里
因为单位中乘的就是公里