GeoJSON形式でAPIを配信するメモ。
/app/api/serializers.py
# GeoFeatureModelSerializer読み込み
from rest_framework_gis.serializers import GeoFeatureModelSerializer
# モデル読み込み
from .models import Points, Lines, Polygons
# ポイントシリアライザ
class PointsSerializer(GeoFeatureModelSerializer):
class Meta:
model = Points
fields = ('__all__')
# 位置情報カラム指定
geo_field = 'geom'
# ラインシリアライザ
class LinesSerializer(GeoFeatureModelSerializer):
class Meta:
model = Lines
fields = ('__all__')
# 位置情報カラム指定
geo_field = 'geom'
# ポリゴンシリアライザ
class PolygonsSerializer(GeoFeatureModelSerializer):
class Meta:
model = Polygons
fields = ('__all__')
# 位置情報カラム指定
geo_field = 'geom'
rest_framework_gis.serializersのGeoFeatureModelSerializerを読み込み
# GeoFeatureModelSerializer読み込み
from rest_framework_gis.serializers import GeoFeatureModelSerializer
GeoFeatureModelSerializerを指定
class PointsSerializer(GeoFeatureModelSerializer):
位置情報が入っているカラムをgeo_fieldとして指定
# 位置情報カラム指定
geo_field = 'geom'
下記URLで確認
http://127.0.0.1:8000/api/points/100/
GeoDjangoを手軽に始める環境を公開しています。
geodjango-starter
- 参考文献
Django
GeoDjango
Django REST framework GIS
GeoDjangoではじめる地理空間情報
Django Rest Framework GISで誰でも簡単RESTful Geo API