【发布时间】:2015-06-22 13:32:58
【问题描述】:
我有两个大的元组列表(大小 > 5000),其中包含如下坐标:
l1 = [ (33.5779, -111.925),
(33.5738, -111.906),
(33.5556, -111.899),
...
(33.5646, -111.915),
(33.5733, -111.863)]
l2 = [ (33.4318, -111.938),
(33.5228, -111.9),
(33.5387, -111.885),
...
(33.5264, -111.925),
(33.538, -111.888)]
我想找出符合以下条件的组合:
distance <= arbitraryDistance
距离是:
from geopy.distance import great_circle
great_circle((longitude1,latitude1), (longitude2,latitude2))
最快的方法是什么?
【问题讨论】:
-
为了澄清您的问题,您想从列表一中选择一个点,从列表二中选择一个点,使得它们的距离小于或等于某个值?
-
正是,我想找到这两个点之间的距离小于或等于“arbitraryDistance”的点的所有组合
-
我要在这里链接这个;我相信这将是解决您的答案的最快方法 - 并且肯定比将每个元素与另一个元素进行比较更快。由于我并没有真正提供代码 sn-ps,而是为您指明正确的方向,因此我将把它留在 cmets 中。 en.wikipedia.org/wiki/Sweep_line_algorithm
-
我没有找到这个扫描线算法的任何好的实现,这看起来很复杂,我的时间也很有限,但感谢你的想法:)
标签: python geolocation