====================== ``GeoJSON`` Serializer ====================== .. module:: django.contrib.gis.serializers.geojson :synopsis: Serialization of GeoDjango models in the GeoJSON format. GeoDjango provides a specific serializer for the `GeoJSON`__ format. See :doc:`/topics/serialization` for more information on serialization. The GDAL library is required if any of the serialized geometries need coordinate transformations (that is if the geometry's spatial reference system differs from the ``srid`` serializer option). __ http://geojson.org/ The ``geojson`` serializer is not meant for round-tripping data, as it has no deserializer equivalent. For example, you cannot use :djadmin:`loaddata` to reload the output produced by this serializer. If you plan to reload the outputted data, use the plain :ref:`json serializer ` instead. In addition to the options of the ``json`` serializer, the ``geojson`` serializer accepts the following additional option when it is called by ``serializers.serialize()``: * ``geometry_field``: A string containing the name of a geometry field to use for the ``geometry`` key of the GeoJSON feature. This is only needed when you have a model with more than one geometry field and you don't want to use the first defined geometry field (by default, the first geometry field is picked). * ``srid``: The SRID to use for the ``geometry`` content. Defaults to 4326 (WGS 84). The :ref:`fields ` option can be used to limit fields that will be present in the ``properties`` key, as it works with all other serializers. Example:: from django.core.serializers import serialize from my_app.models import City serialize('geojson', City.objects.all(), geometry_field='point', fields=('name',)) Would output:: { 'type': 'FeatureCollection', 'crs': { 'type': 'name', 'properties': {'name': 'EPSG:4326'} }, 'features': [ { 'type': 'Feature', 'geometry': { 'type': 'Point', 'coordinates': [-87.650175, 41.850385] }, 'properties': { 'name': 'Chicago' } } ] } When the ``fields`` parameter is not specified, the ``geojson`` serializer adds a ``pk`` key to the ``properties`` dictionary with the primary key of the object as the value. .. versionchanged:: 1.10 The ``pk`` key was added to the ``properties`` dictionary.