GeoJSON
Сериализатор ¶
GeoDjango предоставляет специальный сериализатор для формата GeoJSON . См. Сериализация объектов Django для получения дополнительной информации о сериализации.
geojson
Сериализатору не предназначен для кругооборота данных, так как она не имеет десериализатор эквивалент. Например, вы не можете использовать loaddata
для перезагрузки вывода, созданного этим сериализатором. Если вы планируете перезагрузить выводимые данные, используйте
вместо этого простой сериализатор json .
В дополнение к параметрам json
сериализатора, geojson
сериализатор принимает следующие дополнительные параметры, когда он вызывается
serializers.serialize()
:
geometry_field
: Строка, содержащая имя поля геометрии для использования в качествеgeometry
ключа функции GeoJSON. Это необходимо только в том случае, если у вас есть модель с более чем одним полем геометрии, и вы не хотите использовать первое определенное поле геометрии (по умолчанию выбирается первое поле геометрии).srid
: SRID, используемый дляgeometry
содержимого. По умолчанию 4326 (WGS 84).
Параметр fields можно использовать для ограничения полей, которые будут присутствовать в properties
ключе, так как он работает со всеми другими сериализаторами.
Пример:
from django.core.serializers import serialize
from my_app.models import City
serialize('geojson', City.objects.all(),
geometry_field='point',
fields=('name',))
Выведет:
{
'type': 'FeatureCollection',
'crs': {
'type': 'name',
'properties': {'name': 'EPSG:4326'}
},
'features': [
{
'type': 'Feature',
'geometry': {
'type': 'Point',
'coordinates': [-87.650175, 41.850385]
},
'properties': {
'name': 'Chicago'
}
}
]
}
Если fields
параметр не указан, geojson
сериализатор добавляет pk
в properties
словарь ключ с первичным ключом объекта в качестве значения.