GeoDjangoの概要
GeoDjangoとは
GeoDjangoはDjangoに標準で含まれている地理空間データ用のモジュールです。
GeoDjangoモジュールを使うことで地理情報システム (GIS) のWebアプリケーションの作成が可能になります。
GeoDjangoの機能
Modelに地理空間情報フィールド を追加 (GeometryField, PointField ...)
ORMで空間演算に対応 (rast__contains (ST_Contains) ....)
Djanngoの管理画面で地理地理情報フィールドの編集 (GeoModelAdmin ...)
地理空間情報APIを追加 (GeolocationAPI ...)
Manageコマンド (GeoDjango Management Commands)
GeoDjango Webアプリの基本的な構成例
GeoDjangoの利用例
インタラクティブにバックエンドで計算してからフロントサイドへ送信
アクセスユーザーの制限と管理
Pythonベースのデータ分析や機械学習等との連携または融合
pypi: https://pypi.org/
Pythonベースの地理情報ライブラリの利用
代表的な例
geopandas - pandasの地理情報拡張
osmnx - Open Street Mapのデータを操作
folium - LeafletをPythonから操作
geopy - 住所→緯度経度 緯度経度→住所 変換
shapely - GEOSライブラリを使用して、地理情報オブジェクトを図形的にいろいろ扱う
GeoDjangoのポイント
必要な周辺ツール (Geospatial libraries and Spatial database)
GDAL, GEOS, PROJ4をインストール
PostgresSQL, PostGIS / MySQL / Oracle / SQLite, SpatialLiteのどれかをインストール
* https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#spatial-database
設定 (GeoDjango Setting Up (setting))
設定ファイルにGISデータベースエンジンとアプリケーションを設定
PostGISの場合
データベース定義(モデル) (GeoDjango Setting Up (model))
データのインポート (Importing Spatial Data)
* 国土数値情報ダウンロードサービス: http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v2_3.html
シェープファイルからモデル定義のコードを生成 (Importing Spatial Data (ogrinspect))
シェープファイルからのモデル作成
データインポート用のスクリプロプログラムを作成 (Importing Spatial Data (LayerMapping))
シェープファイルをプログラムでデータベースにロードpythonプログラムを編集する
border_mapping
モデルフィールドとシェーブファイル属性の対応表
transform
座標データ変換はしない
encoding
シェープファイルの文字コードを指定
N03-17_14_170101.shp
ロードするシェープファイル
$ vi load.py
インポート実行 (Importing Spatial Data)
load.pyを実行してデータベースにロードする
管理画面 (Geographic Admin)
$ vi <アプリケーション>/admin.py
$ vi <プロジェクト>/urls.py
GeoJSON Serializer
データベースから指定のデータをGeoJSON形式で取得
GeoDjangoアプリの作成基本例
leaflet.js
MAPD: tweetmap
Twitterつぶやきのダッシュボード
* https://www.mapd.com/demos/tweetmap/
MAPD:NYC Taxi Rides
ニューヨークのタクシーの乗降ダッシュボード
* https://www.mapd.com/demos/taxis/#/dashboard?_k=aigptu
5952 for GTFS
CesiumでGTFSデータの可視化ダッシュボード
Last updated