如何将地图划分为给定半径的圆圈



Folks,

我如何将一个州划分为半径50英里的区域?

也许有更好的方法来解决我的问题:我有一个700个拥有独特城市名称的地点的列表。有些城市相距不到50英里。我需要将该列表减少到距离不超过50英里的最少地点,并且基本上涵盖列表中的附近城市。通过这种方式,我可以在缩减列表中找到每个地点的中心半径邮政编码,然后搜索"50英里内的商店",这应该会返回所有700个地点。

更新:我在不同的城市有5000种产品和700家商店。我需要检查所有产品的库存。我查看的网站只显示距离某个城市50英里以内的商店的库存。这意味着我需要提出3500000个请求。因此,我正在寻找一种方法,将700家门店减少到更小的数量。

一个简单的算法,可以工作,但远非最佳。这从的候选城镇列表开始

  1. 随机选择一个城镇,在该点周围画一个圆圈
  2. 删除圆圈内的所有城镇
  3. 重复,直到没有城镇了

您可以运行它几次,看看某些运行是否会产生明显更少的圆形。

您可以连接x坐标和y坐标的二进制值。它不是直线,而是沿着z曲线对点进行排序。然后你可以用最重要的比特来计算上界。z曲线通常用于映射应用程序:http://msdn.microsoft.com/en-us/library/bb259689.aspx.

最新更新