手机报告的位置是近似的——它们包含一个点(经纬度)和一个半径——也就是说,手机不知道它在哪里,但知道它在某个点的一定距离内。
如何将其存储在数据库中?如何在某个其他点的某个半径范围内检索所有这些手机?
(我看过 MySQL 的 point-type,但是 MySQL 似乎不喜欢圆圈,似乎连一个DISTANCE
函数都没有;还有其他数据库做得好又快吗?)
手机报告的位置是近似的——它们包含一个点(经纬度)和一个半径——也就是说,手机不知道它在哪里,但知道它在某个点的一定距离内。
如何将其存储在数据库中?如何在某个其他点的某个半径范围内检索所有这些手机?
(我看过 MySQL 的 point-type,但是 MySQL 似乎不喜欢圆圈,似乎连一个DISTANCE
函数都没有;还有其他数据库做得好又快吗?)
我建议您将手机存放在Quadtree中。然后,当您要查询一个点时,您可以只对附近的电话进行详尽的搜索,并通过不考虑太远的电话来节省时间。我不知道有任何普通的数据库应用程序可以为您执行此操作,但您自己实现应该不会太难。