0

I have a given point (longitude,latitude) and I want to get all the points ranges that comes lets say 5 miles radius in given point?

4

1 回答 1

5

我只是在这里猜测,但我认为您需要找到不同的方法。如果您尝试使用 Foursquare、Google Maps 等来查找您当前位置 5 英里半径内的地点,我想您会发现这些服务不会计算该半径内的所有点,并且然后将它们与这些点的位置相匹配。

代码背后可能会有一些聪明的人做这样的事情......

  1. 获取用户当前位置
  2. 找到当前位置所在的郊区(或者找不到,找到城市)。还要找到与此相邻的所有周边郊区。
  3. 查找这些郊区内的所有地点,并计算它们与当前用户位置的距离

这种过程是这些服务可以采用的一种潜在方法。这处理位置比较的一小部分,执行起来相对较快。此外,地图上的地点通常都有与之关联的郊区/城市,因此数据库查找地点会相当快,因为​​会有一个涉及郊区的索引。

如果您的目标是做这样的事情,我会尝试找出一种不同的方法来比较点,而不是简单地尝试计算半径内的所有内容。

当然,还有很多特定的算法可以更好地计算,但这不是我的专业领域,更适合另一个论坛。我并不是说这是最好的方法,但还有很多其他方法可以依赖已知的位置数据,这些数据比您建议的要求更快、更智能。

于 2012-06-03T07:13:33.183 回答