【发布时间】:2009-02-09 09:21:29
【问题描述】:
我的数据库中有一个记录列表,每条记录都与一个邮政编码相关联。
查询我的数据库中的所有记录以查找另一个邮政编码 n 英里范围内的所有条目的“最佳实践”是什么?
每个邮政编码在数据库中都有一个与之关联的纬度/经度,所以我知道我必须使用它。但是,我无法想象在每对邮政编码上运行任何类型的距离公式,转换为英里并拒绝那些不在我半径范围内的。
对于这样一个常见的查询,这似乎在计算上非常昂贵。
我也考虑过进行全对预计算,但它似乎也太大而无法考虑。美国大约有 40,000 个邮政编码。因此,每个邮政编码的所有配对数据库将是 (40,000)^2,即 16 亿个条目。
我知道这是网站上的一个常见问题,因此希望有人可以为我指出正确的方向,以找到最佳方法。我正在使用 SQL Server 2008,如果有预构建的解决方案,那就太好了,因为在这种情况下,我真的 不想重新发明轮子 .
相关问题:Getting all zip codes within radius(这对我没有帮助)
另外,我知道这个SourceForge 项目,但它已废弃且不再使用。
【问题讨论】:
标签: linq sql-server-2008 zipcode spatial-query