伙计们,
如何将状态划分为半径50英里的区域?
也许有更好的方法可以解决我的问题:我有一个包含700个具有独特城市名称的地点的列表 . 有些城市距离不到50英里 . 我需要将该列表减少到距离不超过50英里的最小位置,并且基本上覆盖列表中的附近城市 . 通过这种方式,我可以找到缩小列表中每个位置的中心半径邮政编码,然后搜索“50英里内的商店”,这应该返回所有700个位置 .
更新:我在不同城市拥有5000个产品和700家商店 . 我需要检查所有产品的库存 . 我检查它的网站只显示在给定城市50英里范围内的商店中的库存 . 这意味着我需要提出3,500,000个请求 . 因此,我正在寻找一种方法将700个商店减少到一个较小的数量 .
2 回答
一种简单的算法可以使用,但远非最优 . 这从候选城镇列表开始
随机选择一个城镇,围绕该点画一个圆圈
删除圈内的所有城镇
重复,直到没有城镇为止
您可以运行几次以查看某些运行是否会产生明显更少的结果圆 .
您可以连接x和y co-oordinates的二进制值 . 它不是直线,而是沿着z曲线对点进行排序 . 然后,您可以使用最重要的位计算上限 . z曲线通常用于映射应用程序:http://msdn.microsoft.com/en-us/library/bb259689.aspx .