Spring til indhold

GuideAdresser

Hvilken kommune hører postnummeret til — og hvorfor er svaret tit to?

Det er fristende at lave en tabel fra postnummer til kommune. Den bliver forkert. Postnumre er postdistrikter, tegnet efter hvordan posten blev omdelt, og de følger ikke kommunegrænserne. Her er et rigtigt eksempel, og de to måder at få kommunen rigtigt på.

3 min læsning7 trinLive på rigtige dataOpdateret
På denne side7 trin

Prøv det på din egen adresse

Hvilken kommune ligger adressen i?

Søg en adresse, så viser vi kommunen fra punktet selv — også der, hvor postnummeret krydser en kommunegrænse.

Eksempler
  • Kommune
    Silkeborg (0740)
    Region
    Region Midtjylland
    Sogn
    Hørup
    Retskreds
    Retten i Viborg
    Politikreds
    Midt- og Vestjyllands Politi
    Opstillingskreds
    Silkeborg Nord
    $.administrativt_omraade
    [{"tema": "sogn","navn": "Hørup","kode": "8598"},{"tema": "retskreds","navn": "Retten i Viborg","kode": "1171"},{"tema": "politikreds","navn": "Midt- og Vestjyllands Politi","kode": "1462"},{"tema": "opstillingskreds","navn": "Silkeborg Nord","kode": null}]
    curl "https://api.grundfast.dk/v1/dagi/reverse?lon=9.428741&lat=56.283096" \
      -H "Authorization: Bearer $GRUNDFAST_API_KEY"

    svarede efter 1675 ms i sammensætningenMere om DAGI →

Ét postnummer, to kommuner

Postnummer 4000 hedder Roskilde, men ikke alle adresser med 4000 ligger i Roskilde Kommune. Landsbyen Gevninge har postnummer 4000 og ligger i Lejre Kommune, mens Svogerslev med samme postnummer ligger i Roskilde Kommune. Begge dele står i adresseregistret:

To hits fra /v1/adresse/search
[
  {
    "betegnelse": "Svogerslev Hovedgade 1, Svogerslev, 4000 Roskilde",
    "postnr": "4000",
    "postnrnavn": "Roskilde",
    "kommunekode": "0265"
  },
  {
    "betegnelse": "Gevninge Bygade 1, Gevninge, 4000 Roskilde",
    "postnr": "4000",
    "postnrnavn": "Roskilde",
    "kommunekode": "0350"
  }
]
  1. Begge adresser ligger i postdistrikt 4000.

  2. 0265 er Roskilde, 0350 er Lejre — se kommunekoder. En tabel, der siger "4000 → Roskilde", sender altså en del af borgerne i Lejre til den forkerte kommune.

  3. "Roskilde" i adressen er postnummerets navn, ikke en oplysning om kommunen.

Ingen endpoint for postnummer → kommune

Grundfast har bevidst ikke et opslag fra postnummer til kommune, fordi svaret ikke findes som én værdi. /v1/postnumre/:nr giver postnummer, distriktsnavn og stormodtager — ikke kommunen.

Rigtigt: kommunen pr. adresse

Har du adressen, har du kommunen. Hvert hit fra /v1/adresse/search har både postnr og kommunekode, så du skal ikke udlede den ene af den anden. Det samme gælder et vasket kartotek: kandidaterne fra datavask har de samme felter.

curl -G "https://api.grundfast.dk/v1/adresse/search" \
  --data-urlencode "q=Gevninge Bygade 1, 4000" \
  -H "Authorization: Bearer $GRUNDFAST_API_KEY"

Rigtigt: kommunen pr. koordinat

Har du et punkt i stedet for en adresse — en GPS-position, et klik på et kort — så giver /v1/dagi/reverse kommunen og region, sogn og kredse for punktet. Det er den samme metode, kommunegrænsen faktisk er defineret ved: en polygon i DAGI.

bash
curl "https://api.grundfast.dk/v1/dagi/reverse?lon=10.2039&lat=56.1629" \
  -H "Authorization: Bearer $GRUNDFAST_API_KEY"

Når du kun har et postnummer

Nogle formularer spørger kun om postnummer. Så har du ikke oplysningen, og den ærlige løsning er at sige det: spørg efter hele adressen, hvis kommunen betyder noget for sagen, eller vis kommunen som ukendt. Bruger du postnummeret til et groft regionalt overblik, så vær klar over, at grænseområderne bliver forkerte.

Listen over postnumre med distriktsnavn kan du hente gratis som CSV eller JSON, og listen over kommunekoder som CSV. Ingen af dem indeholder en kobling fra postnummer til kommune — af samme grund.

Bynavnet i adressen er heller ikke kommunen

Se på adresselinjen igen: "Gevninge Bygade 1, Gevninge, 4000 Roskilde". Den indeholder to stednavne. "Gevninge" er et supplerende bynavn — navnet på den landsby eller lokalitet, adressen ligger i — og "Roskilde" er postdistriktets navn. Ingen af dem er kommunens navn. Vil du vise kommunen, så slå kommunekode op i listen over kommunekoder i stedet for at læse den ud af adressen.

Stormodtagere

Nogle postnumre har aldrig dækket et område. Stormodtager-postnumre var tildelt én virksomhed eller institution og er udfaset. /v1/postnumre udelader dem som standard og tager dem kun med, når du beder om det med stormodtagere=true, markeret med stormodtager: true. Et sådant nummer har ingen adresser og derfor heller ingen kommune.

Gem begge felter

Den robuste model er at gemme postnr og kommunekode som to selvstændige felter, begge som tekst med foranstillet nul, og at hente dem fra adressen, når den bliver valgt eller vasket. Så kan postnummeret bruges til forsendelse og kommunekoden til alt det, der følger kommunen — skat, sagsbehandling, statistik.

Var denne side nyttig?

Ofte stillede spørgsmål

Ja. Postnumre følger postdistrikter, ikke kommunegrænser. Postnummer 4000 Roskilde dækker fx adresser i både Roskilde Kommune og Lejre Kommune.

Nej, med vilje. Der findes ikke én kommune pr. postnummer. Brug kommunekoden på den enkelte adresse, eller slå et koordinat op i DAGI.

Ikke nødvendigvis. Distriktsnavnet er postnummerets navn. En adresse i Lejre Kommune kan have postdistriktet Roskilde.

Som to felter, begge som tekst, så foranstillede nuller bevares. Hent dem fra adressen, når den vælges eller vaskes.

Prøv det på rigtige data

En gratis nøgle giver adgang til alle registre med samme svarform. Testnøgler faktureres aldrig, så du kan bygge færdigt, før du skifter til produktion.

Gratis op til 5.000 kald/md · intet kreditkort · data fra Klimadatastyrelsen/Datafordeler, CC BY 4.0

Relateret