測定対象
django.contrib.gis.measure モジュールには、距離と面積の測定単位を便利に表現できるオブジェクトが含まれています。 1 具体的には、 Distance と Area の2つのオブジェクトを実装します。どちらも、 D と Aを介してアクセスできます。 それぞれ便利なエイリアス。
例
Distance オブジェクトは、ユニットのコンテキストを示すキーワード引数を使用してインスタンス化できます。 以下の例では、2つの異なる距離オブジェクトがキロメートル(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
2つの Distance オブジェクトを乗算すると、 Area オブジェクトが生成されます。これは、2乗の測定単位を使用します。
>>> 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
|
イギリスの足(Sears 1922) |
british_yd
|
イギリスの庭(Sears 1922) |
british_chain_sears
|
イギリスのチェーン店(Sears 1922) |
indian_yd
|
インドの庭、庭(インド) |
sears_yd
|
ヤード(シアーズ) |
clarke_ft
|
クラークの足 |
chain
|
鎖 |
chain_benoit
|
チェーン(ベノワ) |
chain_sears
|
チェーン(シアーズ) |
british_chain_benoit
|
イギリスのチェーン店(Benoit 1895 B) |
british_chain_sears_truncated
|
イギリスのチェーン店(Sears 1922は切り捨てられました) |
gold_coast_ft
|
ゴールドコーストの足 |
link
|
リンク |
link_benoit
|
リンク(ベノワ) |
link_sears
|
リンク(シアーズ) |
clarke_link
|
クラークのリンク |
fathom
|
ファゾム |
rod
|
ロッド |
furlong
|
ハロン、ハロンロング |
nm
|
海里 |
nm_uk
|
海里(英国) |
german_m
|
ドイツの法定メーター |
測定API
Distance
- class Distance(**kwargs)
距離オブジェクトを初期化するには、目的の値で設定された目的のユニット属性名に対応するキーワードを渡します。 たとえば、次の例では、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)
エリアオブジェクトを初期化するには、目的の値で設定された目的のユニット属性名に対応するキーワードを渡します。 たとえば、次の例では、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
- Robert Coup は、測度オブジェクトの最初の作成者であり、 geopy でのBrianBeckの作業と、ロボット工学の寸法単位に関するGeoffBiggsの博士号の作業に触発されました。