現地参加したPyCon JP 2022のセッションのまとめ6本目です。
今回は、Day1の「GeoDjango ORMと地理空間データの世界」です。
動画
スライド
スピーカー
- 阿部 涼平さん
- 株式会社MIERUNE
- バックエンドエンジニア
- 株式会社MIERUNE
内容
- 位置情報に関する技術や実績が豊富なMIERUNEさんからの発表でした
- 内容は、地理空間・地理情報システムについてです
GeoDjangoとは
- Djangoが持つGIS Webフレームワーク用ラブラリ
- サードパーティではなく公式
GISとは
- 地理情報システム
- 位置情報データを扱う技術
GISで扱うデータ
- ベクタデータ
- ポイント(点)
- ライン(線)
- ポリゴン(面)
- ラスタデータ(画像)
GeoDjangoの対応DB
- PostgreSQL(PostGIS)
- GeoDjangoの公式で推奨
- MySQL
- Oracle
- SQLite(SpatiaLite)
PostGISについて
- GISを扱うためのPostgreSQLの拡張モジュール
- データ型にジオメトリ型が追加される
- 地理空間データの演算を行う空間関数が追される
- 関数名は
ST_XXX
になる-
ST_Contains
・ST_Union
など
-
- 関数名は
GeoDjangoとORM
- GeoDjangoは、空間演算用のORMを持っている
- SQLを意識せずに空間関数を実行できる
空間演算用ORM
lookup
- DjangoのQuerySetを、様々な条件で取得できる
-
contains
・itersects
など
DB関数
- 集計関数やフィルタの中で利用される
-
AsGeoJSON
・Centroid
など
REST API
DjangoでのREST API
- Django REST framework
- サードパーティ
- ブラウザ操作可能
GeoDjangoでのREST API
- django-resr-framework-gis
- GISの機能が追加
- URLでリファクタリングが可能
- JOSNでページネーションできる
感想
- 私自身、地理空間とか地図データに関する処理はやったことがないので、こちらも初見の内容がほとんどでした。
- PostGISも初見だったのですが、PostgreSQLにはいろいろな拡張機能がありますね。