• 3.1
  • 3.2
  • 6.1
  • Версия документации: 5.0

GeoJSON Сериализатор

GeoDjango предоставляет специальный сериализатор для формата GeoJSON. См. Сериализация объектов Django для получения дополнительной информации о сериализации.

Сериализатор geojson не предназначен для двусторонней передачи данных, поскольку у него нет эквивалента десериализатора. Например, вы не можете использовать loaddata для перезагрузки вывода, созданного этим сериализатором. Если вы планируете перезагрузить выведенные данные, используйте вместо этого простой сериализатор json <serialization-formats-json>`.

В дополнение к опциям сериализатора json, сериализатор geojson принимает следующую дополнительную опцию, когда он вызывается из serializers.serialize():

  • geometry_field: строка, содержащая имя поля геометрии, которое будет использоваться в качестве ключа geometry функции GeoJSON. Это необходимо только в том случае, если у вас есть модель с более чем одним полем геометрии и вы не хотите использовать первое определенное поле геометрии (по умолчанию выбирается первое поле геометрии).

  • id_field: строка, содержащая имя поля, которое будет использоваться в качестве ключа id функции 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",
            "id": 1,
            "geometry": {"type": "Point", "coordinates": [-87.650175, 41.850385]},
            "properties": {"name": "Chicago"},
        }
    ],
}

Если параметр fields не указан, сериализатор geojson добавляет ключ pk в словарь свойств с первичным ключом объекта в качестве значения.

Back to Top