Leaf: Business Locations Dataset: CVR (CentraleVirksomhedsregister) — Registered Addresses
The authoritative realisation. CVR records addresses for both firms and production units.
Spatial Access Path
Produktionsenhed (or Virksomhed)
│ FK: → Adressering (text-based address components)
│ kommunekode + vejnavn + husnummer + postnummer
│
│ Geocode via DAR match:
│ FK: adresse → husnummer → adgangspunkt.position
▼
adgangspunkt.position (point geometry via DAR)
3+ levels of joins to geometry. CVR addresses are text-based — they store kommunekode, vejnavn, husnummer, postnummer as separate fields. Coordinates require joining to Addresses (DAR):
- Normalize CVR address components (strip whitespace, standardise case)
- Match to DAR using
kommunekode+vejnavn+husnummer - DAR resolves to
husnummer→adgangspunkt.position(entrance point) orvejpunkt.position(road centreline point)
| Level | Entity | Role | Cardinality |
|---|---|---|---|
| 1 | Produktionsenhed | Operational location record | — |
| 2 | Adressering | Text address fields | 1..1 per P-enhed |
| 3 | DAR husnummer | Matched via address components | 1..1 (when matched) |
| 4a | adgangspunkt | Entrance coordinate | 1..1 per husnummer |
| 4b | vejpunkt | Road centreline coordinate | 1..1 per husnummer |
Key Attributes
| Attribute | Description | Notes |
|---|---|---|
kommunekode | Municipality code | 4-digit, zero-padded (e.g., 0101 for Copenhagen) |
vejnavn | Street name | Danish characters |
husnummer | House number | May include letter suffix (e.g., 12A) |
postnummer | Postal code | 4-digit |
bynavn | City/town name | May differ from municipality name |
Access
- GraphQL: Datafordeleren GraphQL — query
ProduktionsenhedorVirksomhedwith address subfields - File Download: Bulk
Produktionsenhed+Adresseringexports, join locally - Semantic map: CVR Semantic Organisation
Temporal Model
Business locations are bitemporal. A business can move. Historical spatial analysis requires virkningFra/virkningTil filtering to reconstruct location at a given point in time. Both Adressering and Produktionsenhed carry their own temporal fields.