一、准备
授权获取用户的经纬度并存入数据库(lng 字段、lat 字段)。
二、查询
1. 原生查询
SELECT
*, CONVERT (
2 * 6378.137 * ASIN(
SQRT(
POW(
SIN(
3.1415926535898 * (" . $_GET['lat'] . " - lat) / 360
),
2
) + COS(
3.1415926535898 * " . $_GET['lat'] . " / 180
) * COS(lat * 3.1415926535898 / 180) * POW(
SIN(
3.1415926535898 * (" . $_GET['lng'] . " - lng) / 360
),
2
)
)
),
DECIMAL (10, 2)
) AS distance
FROM
`user`
WHERE
lat > 0 AND lng > 0
ORDER BY
distance ASC
LIMIT 0, 10
查询的数据过滤掉指点距离的数据即可,也可使用 where 条件筛选,但