我有一个给定的点(经度,纬度),我想得到所有的点范围,比如给定点5英里半径?
答案 0 :(得分:5)
我只是在这里猜测,但我认为你需要找到一种不同的方法。如果你想尝试像Foursquare,谷歌地图等那样找到你当前位置5英里范围内的地方,我想你会发现这些服务不计算该半径中的所有点,然后将它们匹配到这些点的位置。
代码背后可能会有一些聪明的做法......
这种过程是这些服务可以采用的一种潜在方法。这涉及地点比较的小子集,其执行起来相对较快。此外,地图上的地方通常还有一个与他们相关的郊区/城市,因此对地点的数据库查找会相当快,因为会有一个涉及郊区的索引。
如果您的目标是做这样的事情,我会尝试找出一种不同的比较点的方法,而不是简单地尝试计算半径中的所有内容。
当然,还有很多特定的算法可以更好地计算,但这不是我的专业领域,而且更适合其他论坛。我并不是说这是最好的方法,但还有很多其他方法可以依赖已知的位置数据,这些数据会比您建议的要求更快更智能。