GeoJSON
Serializer¶
GeoDjango tillhandahåller en specifik serialiserare för formatet GeoJSON. Se Serialisering av Django-objekt för mer information om serialisering.
Serialiseraren geojson
är inte avsedd för rundgång av data, eftersom den inte har någon motsvarande deserialiserare. Du kan till exempel inte använda loaddata
för att ladda om utdata som producerats av den här serialiseraren. Om du planerar att ladda om de utmatade data, använd den vanliga json serializer istället.
Utöver alternativen för serialiseraren json
accepterar serialiseraren geojson
följande ytterligare alternativ när den anropas av serializers.serialize()
:
geometry_field
: En sträng som innehåller namnet på ett geometrifält som ska användas för nyckelngeometry
i GeoJSON-funktionen. Detta behövs bara om du har en modell med mer än ett geometrifält och du inte vill använda det första definierade geometrifältet (som standard väljs det första geometrifältet).id_field
: En sträng som innehåller namnet på ett fält som ska användas för GeoJSON-funktionens ”id”-nyckel. Som standard används primärnyckeln för objekt.srid
: Den SRID som ska användas för innehållet igeometri
. Standardvärdet är 4326 (WGS 84).
Alternativet fields kan användas för att begränsa vilka fält som ska finnas i nyckeln properties
, på samma sätt som det fungerar med alla andra serializers.
Exempel:
from django.core.serializers import serialize
from my_app.models import City
serialize("geojson", City.objects.all(), geometry_field="point", fields=["name"])
Skulle mata ut:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": 1,
"geometry": {"type": "Point", "coordinates": [-87.650175, 41.850385]},
"properties": {"name": "Chicago"},
}
],
}
När parametern fields
inte anges lägger serialiseraren geojson
till en nyckel pk
i ordlistan properties
med objektets primärnyckel som värde.