2014-06-30 47 views
-1

民俗,如何将地图划分为给定半径的圆?

我怎样才能把一个状态分成半径50英里的区域呢?

也许有更好的方法来解决我的问题:我有一个700个位置的名单与独特的城市名称。一些城市相隔不足50英里。我需要将这份名单减少到不超过50英里以外的最少数量的地区,并且基本上覆盖了列表中的附近城市。通过这种方式,我可以找到缩小列表中每个位置的中心半径邮政编码,然后搜索“50英里内的商店”,这应该返回全部700个位置。

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

+0

您不能将区域划分为没有重叠或有间隙的圆圈。 – geocodezip

+0

所以你想要一组覆盖所有700个位置的圆圈。你可以用一个规则的点阵来表示一个蜂窝状的布局。 –

+0

@Salixalba每个圈/任何形状应该有1分。这个想法是尽可能少的点,但使用这些点来查询50英里范围内的所有点时,我会得到所有700点。重叠很好。 – MarkL

回答

1

一个简单的算法,它可以工作,但远非最佳。这将启动与候选城市名单

  1. 随机选择一个镇,周围绘制点
  2. 一个圈子中删除所有城镇圈内
  3. 重复,直到没有城镇留下

您可以运行它几次,以查看是否有一些运行产生的结果圈少得多。