---
title: "Mätobjekt"
version: 5.2
locale: sv
source: https://docs.djangoproject.com/sv/5.2/ref/contrib/gis/measure/
canonical: https://djangodocs.dev/sv/5.2/ref/contrib/gis/measure/
---
# Mätobjekt

Modulen [`django.contrib.gis.measure`](#module-django.contrib.gis.measure) innehåller objekt som gör det möjligt att på ett bekvämt sätt representera måttenheter för avstånd och yta. \[Specifikt implementerar den två objekt, [`Distance`](#django.contrib.gis.measure.Distance) och [`Area`](#django.contrib.gis.measure.Area) – som båda kan nås via [`D`](#django.contrib.gis.measure.D) respektive [`A`](#django.contrib.gis.measure.A) bekvämlighetsalias.

## Exempel

[`Distance`](#django.contrib.gis.measure.Distance)-objekt kan instansieras med hjälp av ett nyckelordsargument som anger enheternas sammanhang.  I exemplet nedan instansieras två olika avståndsobjekt i enheterna kilometer (`km`) och miles (`mi`):

```pycon
>>> 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
```

För konverteringar kan du använda attributet för önskad enhet för att få en konverterad avståndsmängd:

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

Dessutom kan aritmetiska operationer utföras mellan avståndsobjekten:

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

Två [`Distance`](#django.contrib.gis.measure.Distance)-objekt multiplicerade med varandra ger ett [`Area`](#django.contrib.gis.measure.Area)-objekt, som använder kvadrerade måttenheter:

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

För att bestämma vad attributförkortningen för en enhet är, kan klassmetoden `unit_attname` användas:

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

## Stödda enheter

| Enhet Attribut | Fullständigt namn eller alias |
| --- | --- |
| `km` | Kilometer, Kilometer |
| `mi` | Miles |
| `m` | Meter, Meter |
| `yd` | Gård |
| `ft` | Foot, Foot (Internationell) |
| `undersökning_ft` | U.S. fot, amerikansk undersökning fot |
| `inch` | Tum |
| `cm` | Centimeter |
| `mm` | Millimeter, Millimeter |
| `um` | Mikrometer, mikrometer |
| ”brittisk\_ft | Brittisk fot (Sears 1922) |
| ”brittisk\_yd | Brittiskt varv (Sears 1922) |
| ”Brittisk kedja | Brittisk kedja (Sears 1922) |
| `indiska_yd` | Indian yard, Yard (Indian) |
| `sears_yd` | Yard (Sears) |
| `clarke_ft` | Clarkes fot |
| `kedja` | Industri |
| `kedja_benoit` | Kedja (Benoit) |
| `kedja_sears` | Kedja (Sears) |
| ”brittisk kedja” (british\_chain\_benoit) | Brittisk kedja (Benoit 1895 B) |
| `british_chain_sears_truncated` | Brittisk kedja (Sears 1922 avkortad) |
| ”guldkust | Gold Coast fot |
| `länk` | Länk |
| `länk_benoit` | Länk (Benoit) |
| `länk_sears` | Länk (Sears) |
| `clarke_link` | Clarkes länk |
| `fathom` | Fathom |
| `rod` | Stång |
| `furlong` | Furlong, Furrow Long |
| `nm` | Nautisk mil |
| `nm_uk` | Nautisk mil (Storbritannien) |
| `german_m` | Tysk juridisk meter |

> **Note**
>
> [`Area`](#django.contrib.gis.measure.Area)-attributen är desamma som [`Distance`](#django.contrib.gis.measure.Distance)-attributen, förutom att de inleds med `sq_` (areaenheter är kvadratiska till sin natur). Till exempel: skapar `Area(sq_m=2)` ett [`Area`](#django.contrib.gis.measure.Area)-objekt som representerar två kvadratmeter.

Förutom enheter med prefixet `sq_` stöds även följande enheter på [`Area`](#django.contrib.gis.measure.Area):

| Enhet Attribut | Fullständigt namn eller alias |
| --- | --- |
| `ha` | Hectare |

> **Changed in Django 5.1**
>
> Stöd för enheten `ha` har lagts till.

## Mätning API

### `Avstånd`

#### `class Distance(**kwargs)`

För att initiera ett avståndsobjekt skickar du in ett nyckelord som motsvarar det önskade [enhetens attributnamn](#supported-units) med önskat värde. Exempelvis skapar följande ett avståndsobjekt som representerar 5 miles:

```pycon
>>> dist = Distance(mi=5)
```

#### `__getattr__(unit_att)`

Returnerar avståndsvärdet i enheter som motsvarar det angivna enhetsattributet. Till exempel:

```pycon
>>> print(dist.km)
8.04672
```

#### `classmethod unit_attname(unit_name)`

Returnerar attributnamnet för avståndsenheten för det angivna fullständiga enhetsnamnet. Till exempel:

```pycon
>>> Distance.unit_attname("Mile")
'mi'
```

#### `class D`

Alias för klassen [`Distance`](#django.contrib.gis.measure.Distance).

### `Area`

#### `class Area(**kwargs)`

För att initiera ett områdesobjekt skickar du in ett nyckelord som motsvarar önskad [enhet attributnamn](#supported-units) med önskat värde. Följande skapar till exempel ett områdesobjekt som representerar 5 kvadratmil:

```pycon
>>> a = Area(sq_mi=5)
```

#### `__getattr__(unit_att)`

Returnerar områdets värde i enheter som motsvarar det angivna enhetsattributet. Till exempel:

```pycon
>>> print(a.sq_km)
12.949940551680001
```

#### `classmethod unit_attname(unit_name)`

Returnerar attributnamnet för områdesenheten för det angivna fullständiga enhetsnamnet. Till exempel:

```pycon
>>> Area.unit_attname("Kilometer")
'sq_km'
```

#### `class A`

Alias för klassen [`Area`](#django.contrib.gis.measure.Area).

**Fotnoter**

[^1]: [Robert Coup](https://koordinates.com/) är den ursprungliga författaren till mätobjekten och inspirerades av Brian Becks arbete inom [geopy](https://github.com/geopy/geopy/) och Geoff Biggs doktorandarbete om dimensionerade enheter för robotik.
