Django 2.1

GeoDjango Forms API




django

GeoDjango Forms API

GeoDjango एक मानचित्र पर भू-आकृति डेटा प्रदर्शित करने और संपादित करने के लिए कुछ विशेष फ़ॉर्म फ़ील्ड और विजेट प्रदान करता है। डिफ़ॉल्ट रूप से, वे NASA द्वारा प्रदान की गई आधार WMS परत के साथ, OpenLayers -powered नक्शे का उपयोग करते हैं।

क्षेत्र तर्क

नियमित रूप से फ़ील्ड तर्क के अलावा , GeoDjango प्रपत्र फ़ील्ड निम्न वैकल्पिक तर्क लेते हैं।

srid

Field.srid

यह SRID कोड है जिसे फ़ील्ड मान में बदलना चाहिए। उदाहरण के लिए, यदि मानचित्र विजेट SRID आपके एप्लिकेशन या डेटाबेस द्वारा उपयोग किए जाने वाले SRID से अलग है, तो फ़ील्ड स्वचालित रूप से इनपुट मानों को उस SRID में बदल देगा।

geom_type

Field.geom_type

आपको आम तौर पर उस विशेषता को सेट या बदलना नहीं चाहिए जो फील्ड क्लास के आधार पर सेटअप होनी चाहिए। यह OpenGIS मानक ज्यामिति नाम से मेल खाता है।

फॉर्म फील्ड कक्षाएं

GeometryField

class GeometryField

PointField

class PointField

LineStringField

class LineStringField

PolygonField

class PolygonField

MultiPointField

class MultiPointField

MultiLineStringField

class MultiLineStringField

MultiPolygonField

class MultiPolygonField

GeometryCollectionField

class GeometryCollectionField

फॉर्म विजेट

GeoDjango प्रपत्र विजेट आपको विज़ुअल मानचित्र पर भौगोलिक डेटा प्रदर्शित करने और संपादित करने की अनुमति देते हैं। ध्यान दें कि वर्तमान में उपलब्ध विगेट्स में से कोई भी 3 डी जियोमेट्री का समर्थन नहीं करता है, इसलिए इस तरह के डेटा के लिए एक साधारण Textarea विजेट का उपयोग करके ज्यामिति फ़ील्ड वापस आ जाएंगे।

विजेट विशेषताएँ

GeoDjango विजेट्स टेम्पलेट-आधारित हैं, इसलिए उनकी विशेषताएँ अन्य Django विजेट विशेषताओं से अधिकतर भिन्न होती हैं।

BaseGeometryWidget.geom_type

OpenGIS ज्यामिति प्रकार, आमतौर पर प्रपत्र फ़ील्ड द्वारा सेट किया गया है।

BaseGeometryWidget.map_height
BaseGeometryWidget.map_width

विजेट मानचित्र की ऊंचाई और चौड़ाई (डिफ़ॉल्ट 400x600 है)।

BaseGeometryWidget.map_srid

मानचित्र द्वारा उपयोग किया जाने वाला SRID कोड (डिफ़ॉल्ट 4326 है)।

BaseGeometryWidget.display_raw

बूलियन मूल्य निर्दिष्ट करता है कि क्या एक रेखांकन इनपुट वर्तमान ज्यामिति का क्रमबद्ध प्रतिनिधित्व दिखा रहा है, मुख्य रूप से डिबगिंग उद्देश्यों के लिए (डिफ़ॉल्ट False )।

BaseGeometryWidget.supports_3d

यह दर्शाता है कि विजेट 3D डेटा के संस्करण का समर्थन करता है (डिफ़ॉल्ट False )।

BaseGeometryWidget.template_name

मैप विजेट को रेंडर करने के लिए उपयोग किया जाने वाला टेम्पलेट।

आप विजेट विशेषताओं को उसी तरीके से पारित कर सकते हैं जैसे कि किसी अन्य Django विजेट के लिए। उदाहरण के लिए:

from django.contrib.gis import forms

class MyGeoForm(forms.Form):
    point = forms.PointField(widget=
        forms.OSMWidget(attrs={'map_width': 800, 'map_height': 500}))

विजेट कक्षाएं

BaseGeometryWidget

class BaseGeometryWidget

यह एक एब्सट्रैक्ट बेस विजेट है जिसमें उपवर्गों द्वारा आवश्यक तर्क होते हैं। आप सीधे ज्यामिति क्षेत्र के लिए इस विजेट का उपयोग नहीं कर सकते। ध्यान दें कि GeoDjango विजेट्स का प्रतिपादन टेम्पलेट पर आधारित है, जिसे template_name वर्ग विशेषता द्वारा पहचाना जाता है।

OpenLayersWidget

class OpenLayersWidget

यह सभी GeoDjango फॉर्म फ़ील्ड द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट विजेट है। template_name gis/openlayers.html

OSMWidget और OSMWidget cdnjs.cloudflare.com सामग्री-वितरण नेटवर्क पर होस्ट किए गए cdnjs.cloudflare.com फ़ाइल का उपयोग करते हैं। आप इन विजेट्स को खोल सकते हैं ताकि OpenLayers.js फ़ाइल के अपने संस्करण को आंतरिक Media वर्ग की js संपत्ति में आपकी आवश्यकताओं के अनुरूप निर्दिष्ट कर सकें ( संपत्ति को स्थिर परिभाषा के रूप में देखें)।

OSMWidget

class OSMWidget

यह विजेट भौगोलिक वस्तुओं को प्रदर्शित करने के लिए एक OpenStreetMap आधार परत का उपयोग करता है। विशेषताएं हैं:

template_name

gis/openlayers-osm.html

default_lat
default_lon

डिफ़ॉल्ट केंद्र अक्षांश और देशांतर क्रमशः 47 और 5 हैं, जो पूर्वी फ्रांस में एक स्थान है।

default_zoom
Django 2.0 में नया:

डिफ़ॉल्ट मानचित्र ज़ूम 12

ऊपर दिए गए जावास्क्रिप्ट फ़ाइल होस्टिंग के बारे में OpenLayersWidget नोट भी यहां लागू होता है। यह भी देखें FAQ अक्सर मैप टाइल्स पर https एक्सेस के बारे में जवाब देता है