Django 2.1 - Measurement Objects

माप की वस्तुएँ




django

माप की वस्तुएँ

django.contrib.gis.measure मॉड्यूल में वे ऑब्जेक्ट होते हैं जो माप की दूरी और क्षेत्र इकाइयों के सुविधाजनक प्रतिनिधित्व के लिए अनुमति देते हैं। [1] विशेष रूप से, यह दो वस्तुओं, Distance और Area लागू करता है - दोनों को क्रमशः D और A सुविधा उपनाम के माध्यम से एक्सेस किया जा सकता है।

उदाहरण

इकाइयों के संदर्भ को इंगित करने वाले एक कीवर्ड तर्क का उपयोग करके Distance वस्तुओं को त्वरित किया जा सकता है। नीचे दिए गए उदाहरण में, दो अलग-अलग दूरी की वस्तुओं को किलोमीटर ( km ) और मील ( mi ) की इकाइयों में झटपट किया जाता है:

>>> from django.contrib.gis.measure import D, Distance
>>> d1 = Distance(km=5)
>>> print(d1)
5.0 km
>>> d2 = D(mi=5) # `D` is an alias for `Distance`
>>> print(d2)
5.0 mi

रूपांतरण आसान है, केवल एक परिवर्तित दूरी की मात्रा प्राप्त करने के लिए पसंदीदा इकाई विशेषता का उपयोग करें:

>>> print(d1.mi) # Converting 5 kilometers to miles
3.10685596119
>>> print(d2.km) # Converting 5 miles to kilometers
8.04672

इसके अलावा, दूरी की वस्तुओं के बीच अंकगणितीय संचालन किया जा सकता है:

>>> print(d1 + d2) # Adding 5 miles to 5 kilometers
13.04672 km
>>> print(d2 - d1) # Subtracting 5 kilometers from 5 miles
1.89314403881 mi

दो Distance वस्तुओं को एक साथ गुणा करने पर एक Area ऑब्जेक्ट मिलेगा, जो माप की चुकता इकाइयों का उपयोग करता है:

>>> a = d1 * d2 # Returns an Area object.
>>> print(a)
40.2336 sq_km

यह निर्धारित करने के लिए कि किसी इकाई का विशेषता संक्षिप्त नाम क्या है, unit_attname वर्ग विधि का उपयोग किया जा सकता है:

>>> print(Distance.unit_attname('US Survey Foot'))
survey_ft
>>> print(Distance.unit_attname('centimeter'))
cm

समर्थित इकाइयाँ

इकाई गुण पूरा नाम या अन्य नाम
km किलोमीटर, किलोमीटर
mi मील
m मीटर, मीटर
yd यार्ड
ft फुट, फुट (अंतर्राष्ट्रीय)
survey_ft यूएस फुट, यूएस सर्वे फुट
inch इंच
cm सेंटीमीटर
mm मिलीमीटर, मिलीमीटर
um माइक्रोमीटर, माइक्रोमीटर
british_ft ब्रिटिश फुट (सियर्स 1922)
british_yd ब्रिटिश यार्ड (1922 में)
british_chain_sears ब्रिटिश चेन (सियर्स 1922)
indian_yd भारतीय यार्ड, यार्ड (भारतीय)
sears_yd यार्ड (सियर्स)
clarke_ft क्लार्क का पैर
chain जंजीर
chain_benoit चेन (बेनोइट)
chain_sears चेन (सियर्स)
british_chain_benoit ब्रिटिश श्रृंखला (बेनोइट 1895 बी)
british_chain_sears_truncated ब्रिटिश श्रृंखला (सियर्स 1922 छंटनी)
gold_coast_ft गोल्ड कोस्ट पैर
link संपर्क
link_benoit लिंक (बेनोइट)
link_sears लिंक (सियर्स)
clarke_link क्लार्क की कड़ी
fathom थाह लेना
rod छड़ी
nm समुद्री मील
nm_uk नॉटिकल माइल (यूके)
german_m जर्मन कानूनी मीटर

ध्यान दें

Area विशेषताएँ Distance विशेषताओं के समान हैं, सिवाय इसके कि वे sq_ साथ उपसर्ग कर रहे हैं (क्षेत्र इकाइयाँ प्रकृति में वर्ग हैं)। उदाहरण के लिए, Area(sq_m=2) दो वर्ग मीटर का प्रतिनिधित्व करने वाला Area वस्तु बनाता है।

मापन एपीआई

Distance

class Distance(**kwargs) [source]

एक दूरस्थ वस्तु को इनिशियलाइज़ करने के लिए, इच्छित मान के साथ सेट की गई वांछित इकाई विशेषता नाम के अनुरूप कीवर्ड में पास करें। उदाहरण के लिए, निम्नलिखित 5 मील का प्रतिनिधित्व करने वाली एक दूरी वस्तु बनाता है:

>>> dist = Distance(mi=5)
__getattr__(unit_att)

दी गई इकाई विशेषता के अनुरूप इकाइयों में दूरी का मान लौटाता है। उदाहरण के लिए:

>>> print(dist.km)
8.04672
classmethod unit_attname(unit_name)

दिए गए पूर्ण इकाई नाम के लिए दूरी इकाई विशेषता नाम लौटाता है। उदाहरण के लिए:

>>> Distance.unit_attname('Mile')
'mi'
class D

Distance वर्ग के लिए उपनाम।

Area

class Area(**kwargs) [source]

किसी एरिया ऑब्जेक्ट को इनिशियलाइज़ करने के लिए, वांछित वैल्यू के साथ सेट किए गए वांछित यूनिट एट्रिब्यूट नाम के अनुरूप कीवर्ड पास करें। उदाहरण के लिए, निम्नलिखित 5 वर्ग मील का प्रतिनिधित्व करने वाला एक क्षेत्र वस्तु बनाता है:

>>> a = Area(sq_mi=5)
__getattr__(unit_att)

दिए गए इकाई विशेषता के अनुरूप इकाइयों में क्षेत्र मान लौटाता है। उदाहरण के लिए:

>>> print(a.sq_km)
12.949940551680001
classmethod unit_attname(unit_name)

दिए गए पूर्ण इकाई नाम के लिए क्षेत्र इकाई विशेषता नाम लौटाता है। उदाहरण के लिए:

>>> Area.unit_attname('Kilometer')
'sq_km'
class A

Area वर्ग के लिए उपनाम।

फुटनोट

[1] रॉबर्ट कूप माप वस्तुओं का प्रारंभिक लेखक है, और ब्रायन बेक के काम से प्रेरित था geopy और ज्यॉफ geopy की पीएचडी में रोबोटिक्स के लिए geopy इकाइयों पर काम करते हैं।