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).
  • 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',
  'crs': {
    'type': 'name',
    'properties': {'name': 'EPSG:4326'}
  },
  'features': [
    {
      'type': 'Feature',
      '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.

Back to Top