这个 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
单位属性 |
全名或别名 |
---|---|
|
公里 |
|
一英里 |
|
米,米 |
|
庭院 |
|
脚,脚(国际) |
|
美国脚,美国测量脚 |
|
英寸 |
|
厘米 |
|
毫米,毫米 |
|
微米,微米 |
|
英国脚(西尔斯1922) |
|
英国船厂(西尔斯1922) |
|
英国连锁店(西尔斯1922) |
|
印度码,码(印度) |
|
庭院(西尔斯) |
|
克拉克脚 |
|
链 |
|
链(班诺特) |
|
链(西尔斯) |
|
英国连锁店(Benoit 1895 B) |
|
英国链(西尔斯1922年截断) |
|
黄金海岸足 |
|
链接 |
|
链接(班诺特) |
|
链接(西尔斯) |
|
克拉克链 |
|
英寻 |
|
棒 |
|
弗隆,弗隆 |
|
海里 |
|
海里(英国) |
|
德国法定米 |
除了具有 sq_
前缀,还支持以下单位 Area
:
单位属性 |
全名或别名 |
---|---|
|
公顷 |
支持 ha
单位已添加。
Distance
¶要初始化距离对象,请传入与所需的 unit attribute name 使用所需的值进行设置。例如,下面创建一个表示5英里的距离对象:
>>> dist = Distance(mi=5)
返回与给定单位属性对应的单位的距离值。例如:
>>> print(dist.km)
8.04672
返回给定完整单位名称的距离单位属性名称。例如:
>>> Distance.unit_attname("Mile")
'mi'
Area
¶要初始化Area对象,请传入与所需 unit attribute name 使用所需的值进行设置。例如,下面创建一个表示5平方英里的面积对象:
>>> a = Area(sq_mi=5)
返回与给定单位属性对应的单位中的面积值。例如:
>>> print(a.sq_km)
12.949940551680001
返回给定完整单位名称的面积单位属性名称。例如:
>>> Area.unit_attname("Kilometer")
'sq_km'
脚注
7月 22, 2024