Django 2.1 - GeoJSON Serializer

GeoJSON सीरियल




django

GeoJSON सीरियल

GeoDjango, GeoJSON प्रारूप के लिए एक विशिष्ट क्रमांक प्रदान करता है। क्रमांकन पर अधिक जानकारी के लिए सीरियल Django वस्तुओं को देखें।

geojson धारावाहिक राउंड-ट्रिपिंग डेटा के लिए नहीं है, क्योंकि इसमें कोई deserializer समतुल्य नहीं है। उदाहरण के लिए, आप इस धारावाहिक द्वारा उत्पादित आउटपुट को पुनः लोड करने के लिए loaddata का उपयोग नहीं कर सकते। यदि आप आउटपुट किए गए डेटा को फिर से लोड करने की योजना बनाते हैं, तो इसके बजाय प्लेन जॅन्स धारावाहिक का उपयोग करें।

geojson के विकल्पों के अलावा, geojson , निम्न अतिरिक्त विकल्प को स्वीकार करता है, जब इसे serializers.serialize() द्वारा बुलाया जाता है:

  • geometry_field : जियोजेन्स फीचर की ज्योमेट्री की के लिए उपयोग करने के लिए ज्योमेट्री फील्ड के नाम से युक्त एक स्ट्रिंग। यह केवल तभी आवश्यक है जब आपके पास एक से अधिक ज्यामिति क्षेत्र वाला मॉडल हो और आप पहले परिभाषित ज्यामिति क्षेत्र का उपयोग नहीं करना चाहते हैं (डिफ़ॉल्ट रूप से, पहला ज्यामिति फ़ील्ड चुना गया है)।
  • srid : geometry सामग्री के लिए उपयोग करने के लिए SRID। 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 serializer ऑब्जेक्ट के प्राथमिक कुंजी के साथ properties शब्दकोश में एक pk कुंजी जोड़ता है मान के रूप में।