Сериализатор 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",
"features": [
{
"type": "Feature",
"id": 1,
"geometry": {"type": "Point", "coordinates": [-87.650175, 41.850385]},
"properties": {"name": "Chicago"},
}
],
}
Если параметр fields не указан, сериализатор geojson добавляет ключ pk в словарь properties, используя в качестве значения первичный ключ объекта.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/6.0/ref/contrib/gis/serializers/