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ベースのデータ分析や機械学習等との連携または融合

  • 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