我想根据输入的美国邮政编码的距离进行搜索。
首先,我知道我需要一个搜索表单:
class SearchForm(forms.Form):
zipcode = forms.CharField(max_length=5)
然后我将这些选项传递给下一个视图,我根据输入的参数进行过滤。这对我来说很棘手..我已经搜索了很多,似乎有很多解决方案。我使用this post作为参考会给我这样的东西:
def display_map(request, zipcode):
objects_near_zip = Thing.objects.filter(location__distance_lte=(Point([zipcode]), D(mi=5)))
但我需要将邮政编码转变为一个点。我该怎么做?您使用过更好的解决方案吗?谢谢你的想法!
编辑:
我找到了this discussion,但实施对我来说有点难以理解。我创建了一个Zipcode
模型,这是有道理的。
但我不确定如何在邮箱中加载拉链码如何或在哪里加载:
lm = LayerMapping(Zipcode, 'tl_2008_us_zcta5.shp',
{ 'code' : 'ZCTA5CE',
'mpoly' : 'MULTIPOLYGON',
})
lm.save()
我在哪里放置此代码? shp文件很大,甚至在我的桌面上花了很长时间,所以我不确定这是最好的解决方案。