我有一组县以及每个质心的纬度和经度:
county lat lon
Abiline 32.134 -23.322
Cook 43.324 -32.219
Allegheny 31.949 -30.123
我还列出了许多医院,每个医院的经度和纬度。我想找到每个县中心距离最近医院的距离。
到目前为止,我已经使用ggmap中的geocode()函数查找每个县与每家医院的距离,然后选择最小距离。但是,因为我有很多县和很多医院,所以这个问题很快变得很高,并且可能需要很长时间。
我想避免使用arcgis - 在R或Python中有这么简单的方法吗?
答案 0 :(得分:0)
我认为你想要达到的目标就像这个问题 closest pair of points这里有完整的算法和解释来实现相同的目标:
我们在平面上给出了一个n个点的数组,问题是要找出数组中最近的一对点。这个问题出现在许多应用中。例如,在空中交通管制中,您可能希望监视太靠近的飞机,因为这可能表示可能发生碰撞。回想下两个点p和q之间的距离的公式。 蛮力解是O(n ^ 2),计算每对之间的距离并返回最小值。我们可以使用Divide and Conquer策略计算O(nLogn)时间的最小距离。
<强>算法强>
以下是O(n(Logn)^ 2)algortihm的详细步骤。 输入:n个点P []的数组 输出:给定数组中两点之间的最小距离。
作为预处理步骤,输入数组按x坐标排序。
实施 is here
希望这有助于:)
资料来源:Geeksforgeeks.org