GeoJSON сериализатор
GeoDjango предоставляет специализированный сериализатор для формата GeoJSON. Подробнее о сериализации см. в разделе Сериализация объектов Django.
Сериализатор geojson не предназначен для обратного преобразования данных, так как у него нет эквивалентного десериализатора. Например, вы не можете использовать loaddata для перезагрузки вывода, созданного этим сериализатором. Если вы планируете перезагрузить выходные данные, используйте обычный сериализатор JSON вместо этого.
В дополнение к опциям сериализатора json, сериализатор geojson принимает следующие дополнительные параметры, когда вызывается serializers.serialize():
-
geometry_field: Строка, содержащая имя поля геометрии, которое будет использоваться для ключаgeometryGeoJSON-признака. Это необходимо только в том случае, если у модели более одного поля геометрии, и вы не хотите использовать первое определенное поле геометрии (по умолчанию используется первое поле геометрии). -
id_field: Строка, содержащая имя поля, которое будет использоваться для ключаidGeoJSON-признака. По умолчанию используется первичный ключ объектов. -
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 со значением первичного ключа объекта.
Добавлен ключ id для сериализованных признаков. Также добавлен параметр id_field к сериализатору geojson.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/4.2/ref/contrib/gis/serializers/