# Documentation Django 5.2.8

# Sérialisation `GeoJSON`

GeoDjango fournit un sérialiseur spécifique au format GeoJSON. Voir Sérialisation d’objets Django pour plus d’informations sur la sérialisation.

Le sérialiseur `geojson` n’est pas conçu pour des allers-retours de données, car il n’a pas d’équivalent de désérialisation. Par exemple, vous ne pouvez pas utiliser `loaddata` pour recharger le résultat produit par ce sérialiseur. Si vous pensez devoir recharger les données produites, utilisez plutôt le sérialiseur json simple.

En plus des options du sérialiseur `json`, le sérialiseur `geojson` accepte l’option supplémentaire suivante lorsqu’il est appelé par `serializers.serialize()`:

- `geometry_field`: une chaîne contenant le nom d’un champ géométrique à utiliser pour la clé `geometry` de l’entrée GeoJSON. C’est uniquement nécessaire si un modèle possède plus d’un champ géométrique et que vous ne voulez pas utiliser le premier champ géométrique défini (par défaut, le premier champ géométrique est choisi).

- `id_field`: une chaîne contenant le nom d’un champ à utiliser pour la clé `id` de l’objet géographique GeoJSON. Par défaut, c’est la clé primaire des objets qui est utilisée.

- `srid`: le code SRID à utiliser pour le contenu géométrique. Contient `4326` par défaut (WGS 84).

L’option fields peut être utilisée pour limiter les champs qui seront présents dans la clé `properties`, comme cela fonctionne avec d’autres sérialiseurs.

Exemple :

    from django.core.serializers import serialize
    from my_app.models import City

    serialize("geojson", City.objects.all(), geometry_field="point", fields=["name"])

Afficherait :

    {
        "type": "FeatureCollection",
        "features": [
            {
                "type": "Feature",
                "id": 1,
                "geometry": {"type": "Point", "coordinates": [-87.650175, 41.850385]},
                "properties": {"name": "Chicago"},
            }
        ],
    }

Lorsque le paramètre `fields` n’est pas précisé, le sérialiseur `geojson` ajoute une clé `pk` au dictionnaire `properties` avec comme valeur la clé primaire de l’objet.