0

我想根据输入的美国邮政编码的距离进行搜索。

首先,我知道我需要一个搜索表单:

class SearchForm(forms.Form):
    zipcode = forms.CharField(max_length=5)

然后我将这些选项传递给下一个视图,在该视图中我根据输入的参数进行过滤。这对我来说很棘手。我搜索了很多,似乎有很多解决方案。我用这篇文章作为参考会给我这样的东西:

def display_map(request, zipcode):
    objects_near_zip = Thing.objects.filter(location__distance_lte=(Point([zipcode]), D(mi=5)))

但我需要把邮政编码变成一个点。我该怎么做?您是否使用过更好的解决方案?谢谢你的想法!


编辑:

我找到了这个讨论,但实现对我来说有点难以理解。我创建了一个Zipcode模型,这是有道理的。

但我不确定如何或在哪里加载邮政编码,就像他在帖子中所说的那样:

lm = LayerMapping(Zipcode, 'tl_2008_us_zcta5.shp',
                   { 'code' : 'ZCTA5CE',
                     'mpoly' : 'MULTIPOLYGON',
                   })
lm.save()

我在哪里放置此代码?shp 文件很大,即使在我的桌面上也需要很长时间,所以我不确定这是最好的解决方案。

4

0 回答 0