測定オブジェクト¶
django.contrib.gis.measure
モジュールには、距離や面積の単位を便利に表現するためのオブジェクトが含まれています。 [1] 具体的には、Distance
と Area
の 2 つのオブジェクトを実装しており、それぞれ 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
サポートされる単位¶
単位 (unit) 属性 | フルネームまたはエイリアス |
---|---|
km |
Kilometre, Kilometer |
mi |
Mile |
m |
Meter, Metre |
yd |
Yard |
ft |
Foot, Foot (International) |
survey_ft |
U.S. Foot, US survey foot |
inch |
Inches |
cm |
Centimeter |
mm |
Millimetre, Millimeter |
um |
Micrometer, Micrometre |
british_ft |
British foot (Sears 1922) |
british_yd |
British yard (Sears 1922) |
british_chain_sears |
British chain (Sears 1922) |
indian_yd |
Indian yard, Yard (Indian) |
sears_yd |
Yard (Sears) |
clarke_ft |
Clarke's Foot |
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 |
Link |
link_benoit |
Link (Benoit) |
link_sears |
Link (Sears) |
clarke_link |
Clarke's link |
fathom |
Fathom |
rod |
Rod |
furlong |
Furlong, Furrow Long |
nm |
Nautical Mile |
nm_uk |
Nautical Mile (UK) |
german_m |
German legal metre |
注釈
Area
の属性は、 Distance
の属性と同じですが、プレフィックスが sq_
になっています (面積の単位は平方です) 。例えば、 Area(sq_m=2)
は、2平方メートルを表す Area
オブジェクトを作成します。
In addition to unit with the sq_
prefix, the following units are also
supported on Area
:
単位 (unit) 属性 | フルネームまたはエイリアス |
---|---|
ha |
Hectare |
Support for the ha
unit was added.
測定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'
-
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'
-
脚注
[1] | Robert Coup は、測定オブジェクトの初期の作者であり、 geopy の Brian Beck 氏の業績や、ロボット工学の寸法単位に関する Geoff Biggs 氏の博士号取得研究に触発されました。 |