Сериализатор 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, значение которого равно первичному ключу объекта.
К ключу properties словаря был добавлен ключ pk.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.11/ref/contrib/gis/serializers/