根据指定坐标来找出指定距离内的其他坐标(已存在)怎么做?

RT,根据app获取到用户坐标后,将其保存到数据库内,然后根据此坐标搜索表内其他用户,找出与其相近的人。
比如500米之内的用户,用处是能返回给该用户附近的人用户列表

目前想到两个方法,但一个觉得太笨了,耗费资源,另一个貌似不太靠谱:

1.每次遍历库内所有用户,然后与当前用户比对,计算坐标距离(当然这不现实,可以将其分组吧,每次给每个用户一个既定范围,例如该用户在朝阳区西北方向,我在自己地图模型(概念上)里将此区定为CYXB1区,并存入数据库,找附近用户只需要搜索自定区域即可,缺点:不能以用户为圆心画半径去搜索附近的人)

2.根据坐标前N位,或前N位相邻的值 模糊查询,
例如:当前坐标 123.456,456.123
如此在数据库查询 select * from users where x like "{123.4}%" and y like "{456.1}%"; #x代表坐标x轴,y同理

请教一下各位有没有好的解决方法,谢谢

查看回复