DjangoとDjango REST framework GISでGeoDjango環境を構築したメモ。
GitHubでも公開しています。GeoDjangoを手軽に始めたい方ぜひご利用ください。
ディレクトリ構成
データベースインストール
PostgreSQL and PostGIS install
サンプルではGoogle Cloud SQLを利用しています。課金が発生するので利用は自己責任でお願いします。ローカル環境やDocker環境でのインストールでも問題ありません。
パッケージインストール
poetry install
パッケージリスト
poetry show
/app/config/settings.py
データベースの設定
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'sampledb',
'USER': 'postgres',
'HOST': 'localhost',
'PORT': '3306',
'PASSWORD': '',
}
}
マイグレーション実行
poetry run ./app/manage.py migrate
/app/api/load_points.py
/app/api/load_lines.py
/app/api/load_polygons.py
インポートデータのファイルパス設定
# ファイルパス (GeoJSONのパスを指定)
geojson_file = '/Users/ユーザー/app/db/geojson/point_osm.geojson'
# ファイルパス (GeoJSONのパスを指定)
geojson_file = '/Users/ユーザー/app/db/geojson/line_osm.geojson'
# ファイルパス (GeoJSONのパスを指定)
geojson_file = '/Users/ユーザー/app/db/geojson/polygon_osm.geojson'
データインポート
poetry run ./app/manage.py shell
from api import load_points
load_points.run()
from api import load_lines
load_lines.run()
from api import load_polygons
load_polygons.run()
exit()
インポートデータ確認
簡易サーバー起動
poetry run ./app/manage.py runserver
ポイントデータ表示
http://127.0.0.1:8000/api/points/100/
ラインデータ表示
http://127.0.0.1:8000/api/lines/100/
ポリゴンデータ表示
http://127.0.0.1:8000/api/polygons/100/
本番環境でのリリースとなるとまだまだやることがあるのですが、手軽にローカル環境で開発したり拡張して本番環境でのリリース等に利用可能です!
- 参考文献
Django
GeoDjango
Django REST framework GIS
GeoDjangoではじめる地理空間情報
Django Rest Framework GISで誰でも簡単RESTful Geo API