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.
La bibliothèque GDAL est requise si l’une des géométries sérialisées a besoin de transformations de coordonnées (c’est-à-dire si le système de référence spatial de l’objet géométrique diffère de l’option de sérialisation srid
).
Le sérialiseur GeoJSON n’a plus besoin de GDAL si tous les éléments géométriques se trouvent dans le même système de coordonnées que l’option de sérialisation srid
.
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. Contient4326
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.
La clé pk
a été ajoutée au dictionnaire properties
.