Penserial GeoJSONΒΆ

GeoDjango menyediakan penserial khusus untuk bentuk GeoJSON. Lihat Menserialkan obyek-obyek Django untuk informasi lebih pada serialisasi.

Penserial geojson tidak bermaksud untuk data bolak-balik, ketika itu tidak mempunyai pendeserial setara. Sebagai contoh, anda tidak dapat menggunakan loaddata untuk memuat kembali keluaran dihasilkan oleh penserial ini. Jika anda berencena untuk memuat kembali data dikeluarkan, gunakan json serializer polos sebagai gantinya.

Sebagai tambahan pada pilihan dari penserial json, penserial json menerima pilihan tambahan berikut ketika itu dipanggil oleh serializers.serialize():

  • geometry_field: Sebuah string mengandung nama dari bidang geometri untuk digunakan untuk kunci geometry dari fitur GeoJSON. Ini hanya dibutuhkan ketika anda mempunyai sebuah model dengan lebih dari satu bidang geometri dan anda tidak ingin menggunakan pertama menentukan bidang geometri (secara awalan, bidang geometri pertama diambil).
  • id_field: A string containing the name of a field to use for the id key of the GeoJSON feature. By default, the primary key of objects is used.
  • srid: SRID digunakan untuk isi geometry. Awalan pada 4326 (WGS 84).

Pilihan fields dapat digunakan untuk membatasi bidang-bidang yang akan hadir dalam kunci properties, ketika itu bekerja dengan semua penserial.

Contoh:

from django.core.serializers import serialize
from my_app.models import City

serialize("geojson", City.objects.all(), geometry_field="point", fields=["name"])

Akan mengeluarkan:

{
    "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"},
        }
    ],
}

Ketika parameter fields tidak ditentukan, penserial geojson menambahkan kunci pk ke dictionary properties dengan primary key dari obyek sebagai nilai.

Changed in Django 4.2:

The id key for serialized features was added. Also, the id_field option was added to the geojson serializer.