给定一个表的用户,由于纬度和经度,找到感兴趣的是位置
+-----+---------+---------+---------+---------+---------+
| user| min_lat | max_lat | min_lng | max_lng |
+-----+---------+---------+---------+---------+---------+
| a | 46 | 407 | 6 | 367 |
| b | 226 | 227 | 186 | 188 |
与点(X,Y)查找用户,其中一点是最小和最大的经度和纬度范围内用户(其中min和max long和lat =当前位置减去或加上半径)。
最小值可以小于0,最大值可以大于360,查询需要考虑这些因素。
E.g.使用Point(7,5)进行过滤也应该返回用户A,因为367-360 = 7。
不知道我是否得到这个权利,但希望有人能给我一些见解。
点(4,5)是一个更好的实例中,如图7是在范围6..367(不考虑a == b mod 360)。 4在范围之外,但在a区域之内。此外,每个点都在该地区(6..367,46..407);也许(50..367,46..407)是一个更好的测试区域,因为经度范围排除了一些值,但是纬度没有。此外,这些地区是否包含终点?术语“最小”和“最大”暗示它们是,但最好是明确的。 – outis 2009-11-11 07:30:15