计算带有zipcode半径的城市

时间:2014-10-15 16:30:36

标签: python django postgresql postgis geodjango

我的系统中有用户,每个用户都与一个邮政编码相关联。他们将在我的数据库中搜索故障单,每个故障单都与特定位置相关联。这个位置也有邮政编码。当他们针对数据库运行针对故障单的查询时,我们希望将结果过滤为仅包含位于卖方邮政编码特定半径内的位置的故障单。

我找到的数据库可以为我提供拉/长的拉链码以及城市。我的问题是:运行上述问题的最佳方法是什么?什么工具合适?

我目前正在使用Python和Django。 GeoDjango看起来像是一种可能性,但它是重量级的,并且附加到PostGIS的GPL V2.0许可证是相当严格的。或者,我可以在应用程序服务器上完成所有工作,但这需要我的搜索始终将一个城市与数据库中的每个城市进行比较,因为从DB返回的结果永远不会被位置所适应。有关实现这一目标的最佳方法的任何想法?

谢谢

1 个答案:

答案 0 :(得分:2)

如果你想避免繁重的GIS内容,并且你的半径是静态的,我会创建一个查找表:对于每个ZIP,给我那些被认为是足够接近的拉链"

要计算此查找表,您必须执行一些GIS操作;但这可以离线完成,您可以使用其他服务(例如OSM或谷歌地理定位)。