入力したアメリカの郵便番号からの距離で検索したい。
まず、検索フォームが必要であることはわかっています。
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 ファイルは非常に大きく、デスクトップでも時間がかかるため、これが最適なソリューションかどうかはわかりません。