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словарь ключ с первичным ключом объекта в качестве значения.

Copyright ©2021 All rights reserved