我需要根据距离对地址进行分组。 我们说我有一个包含8个地址的列表。 5在纽约,3在新泽西。从纽约3中的5个接近MET,2接近世贸中心。新泽西州的3个组成一组,另一组接近MET,也接近世贸中心。
我想发送这个地址列表并且彼此最接近,分组。 Google地图或Bing地图中是否有任何API可以执行此操作?如果没有,您对如何解决这个问题有任何建议吗?
在下面的问题中提到了许多计算距离的方法,但我想知道这些大公司是否已经创建(并且可用)。每次添加新地址时,我都不想重新计算列表中的每个地址。
How to group latitude/longitude points that are 'close' to each other?
此外,上述问题没有解决另一个问题......一个地址可能接近一个群体和其他几个群体。例如:
在这个例子中,我突出显示了至少4个组。 B组成一个"关闭组" A / C,但也有C / F,A / E / G和E / F / D / H.所以我也想知道这些变量。地址更接近哪个组,或者至少我是关于按成员数量限制组。在我的例子中,使用我建议的方法,B将成为RED或BLACK组的一部分。
编辑: 如果对这个问题进行了贬低,你会解释为什么吗?有什么可以改进的?什么不容易理解?谢谢。
答案 0 :(得分:1)
你可以尝试一个四核,并利用它首先访问附近的点,类似于空间填充曲线。将点视为二进制并将其交错。将索引视为base-4数。然后对数字进行排序。