GeoJSON 序列化器

GeoDjango 提供了針對 GeoJSON 格式的特定序列化器。請參閱 序列化 Django 物件 以取得更多序列化資訊。

geojson 序列化器不適用於往返資料,因為它沒有等效的反序列化器。例如,您不能使用 loaddata 來重新載入此序列化器產生的輸出。如果您打算重新載入輸出的資料,請改用一般的 json 序列化器

除了 json 序列化器的選項之外,geojson 序列化器在由 serializers.serialize() 呼叫時,還接受以下額外選項:

  • geometry_field:一個字串,包含要用於 GeoJSON 功能的 geometry 鍵的幾何欄位名稱。只有當您的模型有多個幾何欄位,且您不想使用第一個定義的幾何欄位時才需要(預設情況下,會選擇第一個幾何欄位)。

  • id_field:一個字串,包含要用於 GeoJSON 功能的 id 鍵的欄位名稱。預設情況下,使用物件的主鍵。

  • srid:用於 geometry 內容的 SRID。預設為 4326 (WGS 84)。

欄位 選項可用於限制將出現在 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 字典,並以物件的主鍵作為值。

回到頂端