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.
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
Atributo de Unidad |
Nombre completo o alias(es) |
|---|---|
|
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 |
|
Metro |
|
Milímetro, Milímetro |
|
Micrómetro, Micrómetro |
|
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: |
|
Enlace |
|
Enlace (Benoit) |
|
Enlace (Sears) |
|
El enlace de Clarke |
|
Fathom |
|
Rod |
|
Furlong, Furrow Long |
|
Nautical Mile |
|
Nautical Mile (UK) |
|
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) |
|---|---|
|
Hectárea |
Se agregó soporte para la unidad ha.
Distancia¶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)
Devuelve el valor de la distancia en unidades correspondientes al atributo de unidad dado. Por ejemplo:
>>> print(dist.km)
8.04672
Devuelve el nombre del atributo de unidad para el nombre completo de la unidad dado. Por ejemplo:
>>> Distance.unit_attname("Mile")
'mi'
Alias para la clase Distancia.
Área¶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)
Devuelve el valor de la área en unidades correspondientes al atributo de unidad dado. Por ejemplo:
>>> print(a.sq_km)
12.949940551680001
Devuelve el nombre del atributo de unidad para el nombre completo de la unidad dado. Por ejemplo:
>>> Area.unit_attname("Kilometer")
'sq_km'
Alias para la clase Área.
Notas al pie
may 31, 2026