Obyek Pengukuran

Modul django.contrib.gis.measure megandung obyek-obyek yang mengizinkan untuk gambaran nyaman dari jarak dan unit kawasan dari pengukuran. [1] Khususnya, itu menerapkan dua obyek, Distance dan Area -- kedua dari yang mungkin mengakses melalui nama lain kenyamanan D dan A, masing-masing.

Contoh

Obyek-obyek Distance mungkin diinstasiasi menggunakan argumen kata kunci mengindikasikan konteks dari satuan. Di contoh dibawah, dua perbedaan jarak obyek diinstansiasikan dalam satuan kilometer (km) dan mil (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

For conversions, access the preferred unit attribute to get a converted distance quantity:

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

Terlebih lagi, tindakan-tindakan aritmatika mungkin dilakukan diantara jarak obyek:

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

Dua obyek Distance digandakan bersama-sama akan menghasilkan sebuah obyek Area, yang menggunakan satuan persegi dari ukuran:

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

Untuk menentukan apa singkatan atribut dari satuan adalah, metode kelas unit_attname mungkin digunakan:

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

Satuan Didukung

Satuan Atribut Nama penuh atau nama lain
km Kilometer
mi Mil
m Meter
yd Yard
ft Kaki (Internasional)
survey_ft Kaki Amerika Serikat, penelitian kaki Amerika Serikat
inci Inci
cm Sentimeter
mm Milimeter
um Mikrometer
british_ft Kaki Inggris (Sears 1922)
british_yd Yard Inggris (Sears 1922)
british_chain_sears British chain (Sears 1922)
indian_yd Yard India, Yard (India)
sears_yd Yard (Sears)
clarke_ft Kaki Clarke
chain Chain
chain_benoit Chain (Benoit)
chain_sears Chain (Sears)
british_chain_benoit British chain (Benoit 1895 B)
british_chain_sears_truncated British chain (Sears 1922 truncated)
gold_coast_ft Gold Coast foot
link Tautan
link_benoit Link (Benoit)
link_sears Link (Sears)
clarke_link Tautan Clarke
fathom Fathom
rod Rod
furlong Furlong, Furrow Long
nm Nautical Mile
nm_uk Nautical Mile (UK)
german_m German legal metre

Catatan

Atribut-atribut Area adalah sama seperti atribut-atribut Distance, kecuali mereka diawali dengan sq_ (satuan kawasan adalah persegi di alam). Sebagai contoh, Area(sq_m=2) membuat sebuah obyek Area mewakili dia meter persegi.

API pengukuran

Distance

class Distance(**kwargs)[sumber]

Untuk mengawali sebuah jarak obyek, lewatkan kata kunci sesuai pada unit attribute name diinginkan setel dengan nilai diinginkan. Sebagai contoh, berikut membuat sebuah jarak obyek mewakili 5 mil:

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

Mengembalikan nilai jarak dalam satuan sesuai pada atribut satuan yang diberikan. Sebagai contoh:

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

Mengembalikan nama atribut satuan jarak untuk nama satuan penuh yang diberikan. Sebagai contoh:

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

Nama lain untuk kelas Distance.

Area

class Area(**kwargs)[sumber]

Untuk mengawali sebuah kawasan obyek, lewatkan kata kunci sesuai pada unit attribute name diinginkan setel dengan nilai diinginkan. Sebagai contoh, berikut membuat sebuah kawasan obyek mewakili 5 mil persegi:

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

Mengembalikan nilai kawasan di satuan yang berhubungan ke atribut satuan yang diberikan. Sebagai contoh:

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

Mengembalikan nama atribut satuan kawasan untuk nama satuan penuh yang diberikan. Sebagai contoh:

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

Nama lain untuk kelas Area.

Catatan kaki

[1]Robert Coup adalah penulis awal dari ukuran obyek-obyek, dan terinspirasi oleh pekerjaan Brian Beck dalam geopy dan pekerjaan PhD Geoff Biggs pada dimensi satuan untuk robotik.