通过当前用户的经纬度,查询附近的店铺
店铺表 shop:、id:主键、name:店铺名、lng:经度、lat:维度
id | name | lng | lat |
---|---|---|---|
1 | 店铺1 | 113.665412 | 34.757975 |
2 | 店铺2 | 113.663781 | 34.756318 |
3 | 店铺3 | 113.665412 | 34.757975 |
sql语句:
SELECT *,SQRT(
POW(111.2 * (lat - 34.757975), 2) + --lng:经度减经度 这个+号不能少
POW(111.2 * (113.665412- lng) * COS(lat / 57.3), 2)) --lat:维度减维度
AS distance
FROM shop --表名
HAVING distance < 25 --获取25千米以内的店铺
ORDER BY distance;
-- 得到结果:distance字段为 当前位置到所有店铺的直线距离,单位km
-- HAVING distance < 25 #获取25千米以内的位置
sql结果:
id | name | lng | lat | distance |
---|---|---|---|---|
1 | 店铺1 | 113.665412 | 34.757975 | 0 |
2 | 店铺2 | 113.663781 | 34.756318 | 0 |
3 | 店铺3 | 113.665412 | 34.757975 | 0.23697265494701236 |