Spec-Zone.ru › Django 5.0

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

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

Сериализатор geojson не предназначен для двусторонней загрузки данных, так как у него нет эквивалентного десериализатора. Например, вы не можете использовать loaddata для повторной загрузки вывода, полученного с помощью этого сериализатора. Если вы планируете повторно загрузить данные, используйте обычный сериализатор 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 в словарь properties со значением, равным первичному ключу объекта.

Изменено в Django 4.2:

Добавлен ключ id для сериализованных объектов. Также был добавлен параметр id_field для сериализатора geojson.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/5.0/ref/contrib/gis/serializers/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API