los django.contrib.gis.measure El módulo contiene objetos que permiten una representación conveniente de las unidades de medida de distancia y área. [1] En concreto, implementa dos objetos, Distance y Area – a ambos se puede acceder a través del D y A alias de conveniencia, respectivamente.

Ejemplo

Distance los objetos se pueden instanciar utilizando un argumento de palabra clave que indique el contexto de las unidades. En el siguiente ejemplo, 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

Para conversiones, acceda a la unidad preferida attribute para obtener una cantidad de distancia convertida:

>>>print(d1.mi)# Converting 5 kilometers to miles3.10685596119>>>print(d2.km)# Converting 5 miles to kilometers8.04672

Además, se pueden realizar operaciones aritméticas entre los objetos de distancia:

>>>print(d1 + d2)# Adding 5 miles to 5 kilometers13.04672 km
>>>print(d2 - d1)# Subtracting 5 kilometers from 5 miles1.89314403881 mi

Dos Distance Los objetos multiplicados juntos producirán un Area objeto, que usa unidades de medida cuadradas:

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

Para determinar lo que attribute La abreviatura de una unidad es, la unit_attname se puede utilizar el método de clase:

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

Unidades compatibles

Atributo de la unidad Nombre completo o alias
km Kilómetro, Kilómetro
mi Milla
m Metro, metro
yd Yarda
ft Pie, Pie (Internacional)
survey_ft Pie estadounidense, pie topográfico estadounidense
inch Pulgadas
cm Centímetro
mm Milímetro, milímetro
um Micrómetro, Micrómetro
british_ft Pie británico (Sears 1922)
british_yd Yarda británica (Sears 1922)
british_chain_sears Cadena británica (Sears 1922)
indian_yd Patio indio, Patio (indio)
sears_yd Patio (Sears)
clarke_ft Pie de Clarke
chain Cadena
chain_benoit Cadena (Benoit)
chain_sears Cadena (Sears)
british_chain_benoit Cadena británica (Benoit 1895 B)
british_chain_sears_truncated Cadena británica (Sears 1922 truncada)
gold_coast_ft Pie de Gold Coast
link Enlace
link_benoit Enlace (Benoit)
link_sears Enlace (Sears)
clarke_link Enlace de Clarke
fathom Braza
rod varilla
furlong Furlong, Surco largo
nm Milla nautica
nm_uk Milla náutica (Reino Unido)
german_m Contador legal alemán

Nota

Area attributes son los mismos que Distance attributes, excepto que tienen el prefijo sq_ (las unidades de área son cuadradas por naturaleza). Por ejemplo, Area(sq_m=2) crea un Area objeto que representa dos metros cuadrados.

API de medición

Distance

class Distance(**kwargs)[source]

Para inicializar un objeto de distancia, pase una palabra clave correspondiente a la deseada unidad attribute nombre establecer 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 a la unidad dada. attribute. Por ejemplo:

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

Devuelve la unidad de distancia attribute nombre para el nombre completo de la unidad dada. Por ejemplo:

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

Alias ​​para Distance clase.

Area

class Area(**kwargs)[source]

Para inicializar un objeto de área, pase una palabra clave correspondiente a la deseada unidad attribute nombre establecer 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 del área en unidades correspondientes a la unidad dada. attribute. Por ejemplo:

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

Devuelve la unidad de área attribute nombre para el nombre completo de la unidad dada. Por ejemplo:

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

Alias ​​para Area clase.

Notas al pie

[1] Robert Golpe es el autor inicial de los objetos de medida, y se inspiró en el trabajo de Brian Beck en geopy y el trabajo de doctorado de Geoff Biggs en unidades dimensionadas para robótica.