Spec-Zone.ru › Django 1.10

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

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

Библиотека GDAL требуется, если для сериализованных геометрий необходимы преобразования координат (то есть, если система пространственной привязки геометрии отличается от srid параметра сериализатора).

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

GeoJSON сериализатор больше не нуждается в GDAL, если все геометрии находятся в той же системе координат, что и srid параметр сериализатора.

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

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

К словарю properties был добавлен ключ pk.

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

Spec-Zone.ru

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