Objetos de Medición

El módulo django.contrib.gis.measure contiene objetos que permiten una representación conveniente de unidades de medida de distancia y área. Específicamente, implementa dos objetos: Distance y Area – ambos de los cuales pueden ser accedidos a través de las alias de conveniencia D y A, respectivamente.

Ejemplo

Los objetos Distance se pueden instanciar utilizando un argumento clave que indique el contexto de las unidades. En el ejemplo siguiente, se instancian dos objetos de distancia diferentes en unidades de kilómetros (km) y millas (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

Accede a la propiedad de unidad preferida para obtener una cantidad de distancia convertida:

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

Operaciones aritméticas pueden realizarse entre los objetos de distancia:

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

Dos objetos Distance multiplicados entre sí darán como resultado un objeto Area, que utiliza unidades cuadradas de medida:

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

La traducción es:

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

Unidades soportadas

Atributo de Unidad

Nombre completo o alias(es)

km`

Kilómetro, Kilómetro

mi

Milla

m

Metro, Metre

yd

Yarda

ft

Pie, Pie (Internacional)

survey_ft

Pie estadounidense, pie de encuesta de EE. UU.

inch

Pulgadas

cm

Metro

mm

Milímetro, Milímetro

um

Micrómetro, Micrómetro

british_ft

Pie británico (Sears 1922)

Yarda británica

British yard (Sears 1922)

british_chain_sears

Cadena británica (Sears 1922)

indian_yd

Yard indio, Yard (Indio)

sears_yd

Yard (Sears)

clarke_ft

Pulgada de Clarke

Cadena

Cadena

cadena_benoit

Cadena (Benoit)

cadena_sears

Cadena (Sears)

cadena_británica_benoit

Cadena británica (Benoit 1895 B)

cadena_británica_sears_truncada

Cadena británica (Sears 1922 truncada)

costa_aurifera_ft

La traducción de los textos es la siguiente:

link

Enlace

link_benoit

Enlace (Benoit)

link_sears

Enlace (Sears)

clarke_link

El enlace de Clarke

fathom

Fathom

rod

Rod

furlong

Furlong, Furrow Long

nm

Nautical Mile

nm_uk

Nautical Mile (UK)

german_m

El metro legal alemán

Nota

Los atributos de Area son iguales que los atributos de Distance, excepto que están precedidos por sq_ (las unidades de área tienen una naturaleza cuadrada). Por ejemplo, Area(sq_m=2) crea un objeto Area que representa dos metros cuadrados.

Además de las unidades con el prefijo sq_, también se admiten las siguientes unidades en Area:

Atributo de Unidad

Nombre completo o alias(es)

ha

Hectárea

Se agregó soporte para la unidad ha.

API de Medición

Distancia

class Distance(**kwargs)[fuente]

Para inicializar un objeto de distancia, pasa una palabra clave correspondiente al nombre del atributo de unidad deseado <supported_units> con el valor deseado. Por ejemplo, lo siguiente crea un objeto de distancia que representa 5 millas:

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

Devuelve el valor de la distancia en unidades correspondientes al atributo de unidad dado. Por ejemplo:

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

Devuelve el nombre del atributo de unidad para el nombre completo de la unidad dado. Por ejemplo:

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

Alias para la clase Distancia.

Área

class Area(**kwargs)[fuente]

Para inicializar un objeto de área, pasa una palabra clave correspondiente al conjunto de atributos de unidad deseado con el valor deseado. Por ejemplo, lo siguiente crea un objeto de área que representa 5 millas cuadradas:

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

Devuelve el valor de la área en unidades correspondientes al atributo de unidad dado. Por ejemplo:

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

Devuelve el nombre del atributo de unidad para el nombre completo de la unidad dado. Por ejemplo:

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

Alias para la clase Área.

Notas al pie