測定オブジェクト—Djangoドキュメント

提供:Dev Guides
< DjangoDjango/docs/3.2.x/ref/contrib/gis/measure
移動先:案内検索

測定対象

django.contrib.gis.measure モジュールには、距離と面積の測定単位を便利に表現できるオブジェクトが含まれています。 1 具体的には、 DistanceArea の2つのオブジェクトを実装します。どちらも、 DAを介してアクセスできます。 それぞれ便利なエイリアス。

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 ドイツの法定メーター

ノート

Area 属性は、 Distance 属性と同じですが、接頭辞sq_が付いている点が異なります(面積の単位は本質的に正方形です)。 たとえば、Area(sq_m=2)は、2平方メートルを表す Area オブジェクトを作成します。


測定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の博士号の作業に触発されました。