GeoJSONシリアライザー
GeoDjangoは、 GeoJSON 形式用の特定のシリアライザーを提供します。 シリアル化の詳細については、 Djangoオブジェクトのシリアル化を参照してください。
geojson
シリアライザーは、同等のデシリアライザーがないため、データのラウンドトリップ用ではありません。 たとえば、:djadmin: `loaddata` を使用して、このシリアライザーによって生成された出力を再ロードすることはできません。 出力されたデータをリロードする場合は、代わりにプレーンな jsonシリアライザーを使用してください。
json
シリアライザーのオプションに加えて、geojson
シリアライザーは、serializers.serialize()
によって呼び出されたときに、次の追加オプションを受け入れます。
geometry_field
:GeoJSON機能のgeometry
キーに使用するジオメトリフィールドの名前を含む文字列。 これは、複数のジオメトリフィールドを持つモデルがあり、最初に定義されたジオメトリフィールドを使用したくない場合にのみ必要です(デフォルトでは、最初のジオメトリフィールドが選択されています)。srid
:geometry
コンテンツに使用するSRID。 デフォルトは4326(WGS 84)です。
fields オプションは、他のすべてのシリアライザーで機能するため、properties
キーに存在するフィールドを制限するために使用できます。
例:
from django.core.serializers import serialize
from my_app.models import City
serialize('geojson', City.objects.all(),
geometry_field='point',
fields=('name',))
出力します:
{
'type': 'FeatureCollection',
'crs': {
'type': 'name',
'properties': {'name': 'EPSG:4326'}
},
'features': [
{
'type': 'Feature',
'geometry': {
'type': 'Point',
'coordinates': [-87.650175, 41.850385]
},
'properties': {
'name': 'Chicago'
}
}
]
}
fields
パラメーターが指定されていない場合、geojson
シリアライザーは、オブジェクトの主キーを値としてpk
キーをproperties
ディクショナリに追加します。