【发布时间】:2010-12-28 14:53:24
【问题描述】:
我想使用 GeoDjango 进行基本的位置搜索。具体来说,我想给搜索功能一个邮政编码/城市/县,并找到 5mi、10mi、20mi 等范围内的所有邮政编码/城市/县。我在文档中找到了以下段落:
使用地理坐标系可能会给开发者带来一些麻烦。例如,PostGIS 无法使用地理坐标系执行非点几何之间的距离计算,例如,构建查询以查找存储为 WGS84 的县边界 5 英里内的所有点。 [6]
如果我想使用 PostGIS 并能够在美国进行上述搜索,这究竟意味着什么?文档建议使用投影坐标系仅覆盖特定区域。我需要覆盖整个国家,所以我认为这不是一个选择。
最终,我希望能够在给定起始位置和距离的情况下找到相邻的邮政编码/城市/县。我真的不在乎这在技术层面上是如何完成的。
我在哪里可以找到包含美国邮政编码/城市/县的地理边界的数据库,我可以将其导入 GeoDjango 模型?
更新
我找到了一个数据库,其中包含美国所有邮政编码的经纬度坐标here。我的计划是将这些点导入到 GeoDjango 模型中,并使用 PostGis 构建查询,以查找距给定点 x 英里内的其他点。这解决了文档中提出的问题,因为所有邮政编码都被视为点而不是多边形。这对我的用例来说很好,因为我不关心完美的准确性。
好处:数据文件是免费的
坏处:这些数据来自 2000 年的人口普查,因此已经过时了
有点希望:美国人口普查局每 10 年进行一次人口普查,时间快到 2010 年了
结论:对我来说已经足够了
【问题讨论】:
-
如果你曾经发现过这个问题,看看你的代码的简短 sn-p 会很有帮助。不管怎样,谢谢你的帖子