comment前回で管理画面までできました。メインとなるブラウザ側と連携するところを実装したいと思います。ところでDjangoでGeoJSONってどうやるんだろうか。そんなところから今回は始まります。Notationを用いて空間データをエンコードし非空間属性を関連付けるファイル形式である。ポリゴン(国や地域)などが含まれる。Consortiumではなく世界各地の開発者達が開発し管理している点で異なる。要は空間データを扱えるようにしたJSONですね、詳細は以下にフォーマットが定義されています。SpecificationGeoDjangoでGeoJSONを出力するGeoDjangoの機能を試すGeoDjangoのドキュメントを調べてみるとそれっぽいメソッドがあったので試してみました。属性(properties)が出力されませんね。開発版には新しいAPIがあるみたいなんですけど、今はコレしか出来ないみたいですね。ポリゴン情報はコレを使って後は自前でどうにかするしかないのかなと考えていたんですが、念の為プラグインないかなと探してみたらdjango-geojsonというのがあるじゃないですか。django-geojsondjango-geojsonのインストールpipでインストール。up...django-geojsonの有効化プロジェクト設定を編集してプラグインを追加します。geodjango/settings.py以下の一行をINSTALLED_APPSの末尾に追加します。add)では、試してみましょう。日本語が文字化けしてるけど構造は問題なさそうなのでコレを使いましょう。GeoDjangoでGeoJSONを出力するWebAPIを作るそれではさっそく、ブラウザ側にGeoJSONを返すWebAPIを作成してみましょう。アプリ作成demoのままでもいいんですが、気持ちを改めて「api」という名前でアプリ作成します。するとアプリ名のディレクトリが作成され、作成したディレクトリ配下に次のようなファイルが自動生成されます。name='borders'),)なお、通常はapi/views.pyに関数定義するのが一般的なようですが、今回はdjango-geojsonのページのサンプルに従いapi/urls.pyでGeoJSONLayerViewを直接呼んでいます。これで「/api/v1/borders.geojson」へのアクセスで全登録データがGeoJSONで出力されるようになりました。Sharing)ですね。Django側で全部配置しておけば解決するんでしょうが、最初のうちは分けて試しがちです。今回はプラグインで回避しましょう。django-cors-headersのインストールpipでインストール。up...django-cors-headersの有効化プロジェクト設定を編集してプラグインを追加します。addさて、いよいよ、クライアント側の作成です。Django側でやるのはわからないので今回は別に作ります。LeafletとjQueryのダウンロード以下、サイトからLeafletとjQueryの最新版をダウンロードして任意の場所に展開します。LeafletjQuery初めてのLeafletダウンロードしたファイルをこんな形で配置します(お好みですが)。15);</script></body></html>それではブラウザで開いてみましょう。はい、地図が見えますね。ベースはこれでOKですのでいよいよ、GeoJSONでデータを取得してみましょう。下記コード中の取得先URLのIPは各自の環境で変更してください。});</script></body></html>それではブラウザで開いてみましょう。え、さっきと変わらないですって?暫くお待ち下さい。マシンが悲鳴をあげなければ表示されます。はいキタ━(゚∀゚)━!とうとう、ここまで来ましたよ。