Skip to content

Commit

Permalink
Add detailed types, and specify references as such.
Browse files Browse the repository at this point in the history
  • Loading branch information
klauspost committed Jan 30, 2015
1 parent 7b231da commit bc56779
Show file tree
Hide file tree
Showing 9 changed files with 107 additions and 66 deletions.
95 changes: 68 additions & 27 deletions adgangsadresser.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,27 @@ import (
// Forskellen på en adresse og en adgangsadresse er at adressen rummer
// eventuel etage- og/eller dørbetegnelse. Det gør adgangsadressen ikke.
type AdgangsAdresse struct {
DDKN DDKN `json:"DDKN"` // Adressens placering i Det Danske Kvadratnet (DDKN).
Adgangspunkt Adgangspunkt `json:"adgangspunkt"` // Geografisk punkt, som angiver særskilt adgang fra navngiven vej ind på et areal eller bygning.
Ejerlav Ejerlav `json:"ejerlav"` // Det matrikulære ejerlav som adressen ligger i.
EsrEjendomsNr string `json:"esrejendomsnr"` // ESR Ejendomsnummer. Indtil 7 cifre.
Historik Historik `json:"historik"` // Væsentlige tidspunkter for adgangsadressen
Href string `json:"href"` // Adgangsadressens URL.
Husnr string `json:"husnr"` // Husnummer. Max 4 cifre eventuelt med et efterfølgende bogstav.
ID string `json:"id"` // Adgangsadressens unikke id, f.eks. 0a3f5095-45ec-32b8-e044-0003ba298018
Kommune Kommune `json:"kommune"` // Kommunen som adressen er beliggende i.
Kvh string `json:"kvh"` // KVH-nøgle. 12 tegn bestående af 4 cifre der repræsenterer kommunekode, 4 cifre der repræsenterer vejkode efterfulgt af 4 tegn der repræsenter husnr
Matrikelnr string `json:"matrikelnr"` // Matrikelnummer. Unikt indenfor et ejerlav.
Opstillingskreds Opstillingskreds `json:"opstillingskreds"` // Opstillingskresen som adressen er beliggende i. Beregnes udfra adgangspunktet og opstillingskredsinddelingerne fra DAGI
Politikreds Politikreds `json:"politikreds"` // Politikredsen som adressen er beliggende i. Beregnes udfra adgangspunktet og politikredsinddelingerne fra DAGI
Postnummer PostnummerRef `json:"postnummer"` // Postnummeret som adressen er beliggende i.
Region Region `json:"region"` // Regionen som adressen er beliggende i. Beregnes udfra adgangspunktet og regionsinddelingerne fra DAGI
Retskreds Retskreds `json:"retskreds"` // Retskredsen som adressen er beliggende i. Beregnes udfra adgangspunktet og retskredsinddelingerne fra DAGI
Sogn Sogn `json:"sogn"` // Sognet som adressen er beliggende i. Beregnes udfra adgangspunktet og sogneinddelingerne fra DAGI
Status int `json:"status"` // Adressens status, som modtaget fra BBR. "1" angiver en endelig adresse og "3" angiver en foreløbig adresse". Adresser med status "2" eller "4" er ikke med i DAWA.
SupplerendeBynavn string `json:"supplerendebynavn"` // Et supplerende bynavn – typisk landsbyens navn – eller andet lokalt stednavn, der er fastsat af kommunen for at præcisere adressens beliggenhed indenfor postnummeret.
Vejstykke VejstykkeRef `json:"vejstykke"` // Vejstykket som adressen er knyttet til.
Zone string `json:"zone"` // Hvilken zone adressen ligger i. "Byzone", "Sommerhusområde" eller "Landzone". Beregnes udfra adgangspunktet og zoneinddelingerne fra PlansystemDK
DDKN DDKN `json:"DDKN"` // Adressens placering i Det Danske Kvadratnet (DDKN).
Adgangspunkt Adgangspunkt `json:"adgangspunkt"` // Geografisk punkt, som angiver særskilt adgang fra navngiven vej ind på et areal eller bygning.
Ejerlav Ejerlav `json:"ejerlav"` // Det matrikulære ejerlav som adressen ligger i.
EsrEjendomsNr string `json:"esrejendomsnr"` // ESR Ejendomsnummer. Indtil 7 cifre.
Historik Historik `json:"historik"` // Væsentlige tidspunkter for adgangsadressen
Href string `json:"href"` // Adgangsadressens URL.
Husnr string `json:"husnr"` // Husnummer. Max 4 cifre eventuelt med et efterfølgende bogstav.
ID string `json:"id"` // Adgangsadressens unikke id, f.eks. 0a3f5095-45ec-32b8-e044-0003ba298018
Kommune KommuneRef `json:"kommune"` // Kommunen som adressen er beliggende i.
Kvh string `json:"kvh"` // KVH-nøgle. 12 tegn bestående af 4 cifre der repræsenterer kommunekode, 4 cifre der repræsenterer vejkode efterfulgt af 4 tegn der repræsenter husnr
Matrikelnr string `json:"matrikelnr"` // Matrikelnummer. Unikt indenfor et ejerlav.
Opstillingskreds OpstillingskredsRef `json:"opstillingskreds"` // Opstillingskresen som adressen er beliggende i. Beregnes udfra adgangspunktet og opstillingskredsinddelingerne fra DAGI
Politikreds PolitikredsRef `json:"politikreds"` // Politikredsen som adressen er beliggende i. Beregnes udfra adgangspunktet og politikredsinddelingerne fra DAGI
Postnummer PostnummerRef `json:"postnummer"` // Postnummeret som adressen er beliggende i.
Region Region `json:"region"` // Regionen som adressen er beliggende i. Beregnes udfra adgangspunktet og regionsinddelingerne fra DAGI
Retskreds RetskredsRef `json:"retskreds"` // Retskredsen som adressen er beliggende i. Beregnes udfra adgangspunktet og retskredsinddelingerne fra DAGI
Sogn SognRef `json:"sogn"` // Sognet som adressen er beliggende i. Beregnes udfra adgangspunktet og sogneinddelingerne fra DAGI
Status int `json:"status"` // Adressens status, som modtaget fra BBR. "1" angiver en endelig adresse og "3" angiver en foreløbig adresse". Adresser med status "2" eller "4" er ikke med i DAWA.
SupplerendeBynavn string `json:"supplerendebynavn"` // Et supplerende bynavn – typisk landsbyens navn – eller andet lokalt stednavn, der er fastsat af kommunen for at præcisere adressens beliggenhed indenfor postnummeret.
Vejstykke VejstykkeRef `json:"vejstykke"` // Vejstykket som adressen er knyttet til.
Zone string `json:"zone"` // Hvilken zone adressen ligger i. "Byzone", "Sommerhusområde" eller "Landzone". Beregnes udfra adgangspunktet og zoneinddelingerne fra PlansystemDK
}

// Adressens placering i Det Danske Kvadratnet (DDKN).
Expand All @@ -44,6 +44,12 @@ type DDKN struct {
M100 string `json:"m100"`
}

type ChangeInfo struct {
Ændret string `json:"ændret"` // Tidspunkt for seneste ændring registreret i DAWA. Opdateres ikke hvis ændringen kun vedrører geometrien (se felterne geo_ændret og geo_version).
GeoVersion float64 `json:"geo_version"` // Versionsangivelse for geometrien. Inkrementeres hver gang geometrien ændrer sig i DAWA.
GeoÆndret string `json:"geo_ændret"` // Tidspunkt for seneste ændring af geometrien registreret i DAWA.
}

// Geografisk punkt, som angiver særskilt adgang fra navngiven vej ind på et areal eller bygning.
type Adgangspunkt struct {
Kilde int `json:"kilde"` // Kode der angiver kilden til adressepunktet. Et tegn. ”1” = oprettet maskinelt fra teknisk kort; ”2” = Oprettet maskinelt fra af matrikelnummer tyngdepunkt; ”3” = Eksternt indberettet af konsulent på vegne af kommunen; ”4” = Eksternt indberettet af kommunes kortkontor o.l. ”5” = Oprettet af teknisk forvaltning."
Expand All @@ -55,6 +61,7 @@ type Adgangspunkt struct {
}

type Ejerlav struct {
Href string `json:"href"` // Ejerlavets unikke URL
Kode int `json:"kode"` // Unik identifikation af det matrikulære ”ejerlav”, som adressen ligger i. Repræsenteret ved indtil 7 cifre. Eksempel: ”170354” for ejerlavet ”Eskebjerg By, Bregninge”.
Navn string `json:"navn"` // Det matrikulære ”ejerlav”s navn. Eksempel: ”Eskebjerg By, Bregninge”.
}
Expand All @@ -64,25 +71,42 @@ type Historik struct {
Ændret AwsTime `json:"ændret"` // Dato og tid hvor der sidst er ændret i data,
}

// Kommunen som adressen er beliggende i.
type Kommune struct {
// Kommunen som adressen er beliggende i. Reference
type KommuneRef struct {
Href string `json:"href"` // Kommunens unikke URL.
Kode string `json:"kode"` // Kommunekoden. 4 cifre.
Navn string `json:"navn"` // Kommunens navn.
}

type Opstillingskreds struct {
// Kommunen som adressen er beliggende i. Fuldt objekt
type Kommune struct {
KommuneRef
ChangeInfo
Regionskode string `json:"regionskode"` // Regionskode for den region kommunen er beliggende i. 4 cifre.
}

type OpstillingskredsRef struct {
Href string `json:"href"` // Opstillingskredsens unikke URL
Kode string `json:"kode"` // Identifikation af opstillingskredsen.
Navn string `json:"navn"` // Opstillingskredsens navn.
}

type Politikreds struct {
type Opstillingskreds struct {
OpstillingskredsRef
ChangeInfo
}
type PolitikredsRef struct {
Href string `json:"href"` // Politikredsens unikke URL
Kode string `json:"kode"` // Identifikation af politikredsen
Navn string `json:"navn"` // Politikredsens navn
}


type Politikreds struct {
PolitikredsRef
ChangeInfo
}

type PostnummerRef struct {
Href string `json:"href"` // Postnummerets unikke URL
Navn string `json:"navn"` // Det navn der er knyttet til postnummeret, typisk byens eller bydelens navn. Repræsenteret ved indtil 20 tegn. Eksempel: ”København NV”.
Expand All @@ -95,18 +119,35 @@ type Region struct {
Navn string `json:"navn"` // Regionens navn
}

type Retskreds struct {
type RetskredsRef struct {
Href string `json:"href"` // Retskredsens unikke URL
Kode string `json:"kode"` // Identifikation af retskredsen
Navn string `json:"navn"` // Retskredsens navn
}

type Sogn struct {
type Retskreds struct {
RetskredsRef
ChangeInfo
}

type SognRef struct {
Href string `json:"href"` // Sognets unikke URL
Kode string `json:"kode"` // Identifikation af sognet
Navn string `json:"navn"` // Sognets navn
}

type Sogn struct {
SognRef
ChangeInfo
}

type Valglandsdel struct {
Bogstav string `json:"bogstav"`
Href string `json:"href"`
Navn string `json:"navn"`
ChangeInfo
}

type VejstykkeRef struct {
Href string `json:"href"`
Kode string `json:"kode"` // Vejkoden. 4 cifre.
Expand Down
20 changes: 10 additions & 10 deletions adgangsadresser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,19 @@ func TestImportAdgangsAdresserCSV(t *testing.T) {
Href: "",
Husnr: "3A",
ID: "0a3f507a-3669-32b8-e044-0003ba298018",
Kommune: Kommune{
Kommune: KommuneRef{
Href: "",
Kode: "0101",
Navn: "København",
},
Kvh: "",
Matrikelnr: "377",
Opstillingskreds: Opstillingskreds{
Opstillingskreds: OpstillingskredsRef{
Href: "",
Kode: "0009",
Navn: "Vesterbro",
},
Politikreds: Politikreds{
Politikreds: PolitikredsRef{
Href: "",
Kode: "1470",
Navn: "Københavns Politi",
Expand All @@ -73,12 +73,12 @@ func TestImportAdgangsAdresserCSV(t *testing.T) {
Kode: "1084",
Navn: "Region Hovedstaden",
},
Retskreds: Retskreds{
Retskreds: RetskredsRef{
Href: "",
Kode: "1101",
Navn: "Københavns Byret",
},
Sogn: Sogn{
Sogn: SognRef{
Href: "",
Kode: "9185",
Navn: "Vesterbro",
Expand Down Expand Up @@ -383,19 +383,19 @@ func TestImportAdgangsAdresserJSON(t *testing.T) {
Href: "http://dawa.aws.dk/adgangsadresser/0a3f507a-3669-32b8-e044-0003ba298018",
Husnr: "3A",
ID: "0a3f507a-3669-32b8-e044-0003ba298018",
Kommune: Kommune{
Kommune: KommuneRef{
Href: "http://dawa.aws.dk/kommuner/101",
Kode: "0101",
Navn: "København",
},
Kvh: "01010004__3A",
Matrikelnr: "377",
Opstillingskreds: Opstillingskreds{
Opstillingskreds: OpstillingskredsRef{
Href: "http://dawa.aws.dk/opstillingskredse/9",
Kode: "0009",
Navn: "Vesterbro",
},
Politikreds: Politikreds{
Politikreds: PolitikredsRef{
Href: "http://dawa.aws.dk/politikredse/1470",
Kode: "1470",
Navn: "Københavns Politi",
Expand All @@ -410,12 +410,12 @@ func TestImportAdgangsAdresserJSON(t *testing.T) {
Kode: "1084",
Navn: "Region Hovedstaden",
},
Retskreds: Retskreds{
Retskreds: RetskredsRef{
Href: "http://dawa.aws.dk/retskredse/1101",
Kode: "1101",
Navn: "Københavns Byret",
},
Sogn: Sogn{
Sogn: SognRef{
Href: "http://dawa.aws.dk/sogne/9185",
Kode: "9185",
Navn: "Vesterbro",
Expand Down
20 changes: 10 additions & 10 deletions adresser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@ func TestImportAdresserCSV(t *testing.T) {
Href: "",
Husnr: "6",
ID: "0a3f508c-3307-32b8-e044-0003ba298018",
Kommune: Kommune{Href: "", Kode: "0550", Navn: "Tønder"},
Kommune: KommuneRef{Href: "", Kode: "0550", Navn: "Tønder"},
Kvh: "05500001___6",
Matrikelnr: "76",
Opstillingskreds: Opstillingskreds{Href: "", Kode: "0051", Navn: "Tønder"},
Politikreds: Politikreds{Href: "", Kode: "1464", Navn: "Syd- og Sønderjyllands Politi"},
Opstillingskreds: OpstillingskredsRef{Href: "", Kode: "0051", Navn: "Tønder"},
Politikreds: PolitikredsRef{Href: "", Kode: "1464", Navn: "Syd- og Sønderjyllands Politi"},
Postnummer: PostnummerRef{Href: "", Navn: "Rømø", Nr: "6792"},
Region: Region{Href: "", Kode: "1083", Navn: "Region Syddanmark"},
Retskreds: Retskreds{Href: "", Kode: "1147", Navn: "Retten i Sønderborg"},
Sogn: Sogn{Href: "", Kode: "9062", Navn: "Rømø"},
Retskreds: RetskredsRef{Href: "", Kode: "1147", Navn: "Retten i Sønderborg"},
Sogn: SognRef{Href: "", Kode: "9062", Navn: "Rømø"},
Status: 1,
SupplerendeBynavn: "Vråby",
Vejstykke: VejstykkeRef{Href: "", Kode: "0001", Navn: "A Hansensvej"}, Zone: "Landzone",
Expand Down Expand Up @@ -362,15 +362,15 @@ func TestImportAdresserJSON(t *testing.T) {
Href: "http://dawa.aws.dk/adgangsadresser/0a3f508d-d915-32b8-e044-0003ba298018",
Husnr: "1",
ID: "0a3f508d-d915-32b8-e044-0003ba298018",
Kommune: Kommune{Href: "http://dawa.aws.dk/kommuner/563", Kode: "0563", Navn: "Fanø"},
Kommune: KommuneRef{Href: "http://dawa.aws.dk/kommuner/563", Kode: "0563", Navn: "Fanø"},
Kvh: "05630110___1",
Matrikelnr: "320",
Opstillingskreds: Opstillingskreds{Href: "http://dawa.aws.dk/opstillingskredse/52", Kode: "0052", Navn: "Esbjerg By"},
Politikreds: Politikreds{Href: "http://dawa.aws.dk/politikredse/1464", Kode: "1464", Navn: "Syd- og Sønderjyllands Politi"},
Opstillingskreds: OpstillingskredsRef{Href: "http://dawa.aws.dk/opstillingskredse/52", Kode: "0052", Navn: "Esbjerg By"},
Politikreds: PolitikredsRef{Href: "http://dawa.aws.dk/politikredse/1464", Kode: "1464", Navn: "Syd- og Sønderjyllands Politi"},
Postnummer: PostnummerRef{Href: "http://dawa.aws.dk/postnumre/6720", Navn: "Fanø", Nr: "6720"},
Region: Region{Href: "http://dawa.aws.dk/regioner/1083", Kode: "1083", Navn: "Region Syddanmark"},
Retskreds: Retskreds{Href: "http://dawa.aws.dk/retskredse/1151", Kode: "1151", Navn: "Retten i Esbjerg"},
Sogn: Sogn{Href: "http://dawa.aws.dk/sogne/8923", Kode: "8923", Navn: "Nordby"}, Status: 1, SupplerendeBynavn: "Nordby",
Retskreds: RetskredsRef{Href: "http://dawa.aws.dk/retskredse/1151", Kode: "1151", Navn: "Retten i Esbjerg"},
Sogn: SognRef{Href: "http://dawa.aws.dk/sogne/8923", Kode: "8923", Navn: "Nordby"}, Status: 1, SupplerendeBynavn: "Nordby",
Vejstykke: VejstykkeRef{Href: "http://dawa.aws.dk/vejstykker/563/110", Kode: "0110", Navn: "A B C Sti"}, Zone: "Byzone"},
Adressebetegnelse: "A B C Sti 1, 1., Nordby, 6720 Fanø",
Dør: "",
Expand Down
2 changes: 1 addition & 1 deletion bynavne.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
type SupplBynavn struct {
Navn string `json:"navn"` // Det supplerende bynavn. Indtil 34 tegn. Eksempel: ”Sønderholm”.
Href string `json:"href"` // Det supplerende bynavns unikke URL
Kommuner []Kommune `json:"kommuner"` // Kommuner, som det supplerende bynavn er beliggende i.
Kommuner []KommuneRef `json:"kommuner"` // Kommuner, som det supplerende bynavn er beliggende i.
Postnumre []PostnummerRef `json:"postnumre"` // Postnumre, som det supplerende bynavn er beliggende i.
}

Expand Down
6 changes: 3 additions & 3 deletions bynavne_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ var suppl_bynavn_json_input = `
func TestImportSupplBynavnJSON(t *testing.T) {
// We test one entry only to match
var json_expect = []SupplBynavn{
SupplBynavn{Navn: "Åvang", Href: "http://dawa.aws.dk/supplerendebynavne/%C3%85vang", Kommuner: []Kommune{Kommune{Href: "http://dawa.aws.dk/kommuner/350", Kode: "0350", Navn: "Lejre"}}, Postnumre: []PostnummerRef{PostnummerRef{Href: "http://dawa.aws.dk/postnumre/4320", Navn: "Lejre", Nr: "4320"}}},
SupplBynavn{Navn: "Aavang", Href: "http://dawa.aws.dk/supplerendebynavne/Aavang", Kommuner: []Kommune{Kommune{Href: "http://dawa.aws.dk/kommuner/350", Kode: "0350", Navn: "Lejre"}}, Postnumre: []PostnummerRef{PostnummerRef{Href: "http://dawa.aws.dk/postnumre/4320", Navn: "Lejre", Nr: "4320"}}},
SupplBynavn{Navn: "Åved", Href: "http://dawa.aws.dk/supplerendebynavne/%C3%85ved", Kommuner: []Kommune{Kommune{Href: "http://dawa.aws.dk/kommuner/550", Kode: "0550", Navn: "Tønder"}}, Postnumre: []PostnummerRef{PostnummerRef{Href: "http://dawa.aws.dk/postnumre/6780", Navn: "Skærbæk", Nr: "6780"}}},
SupplBynavn{Navn: "Åvang", Href: "http://dawa.aws.dk/supplerendebynavne/%C3%85vang", Kommuner: []KommuneRef{KommuneRef{Href: "http://dawa.aws.dk/kommuner/350", Kode: "0350", Navn: "Lejre"}}, Postnumre: []PostnummerRef{PostnummerRef{Href: "http://dawa.aws.dk/postnumre/4320", Navn: "Lejre", Nr: "4320"}}},
SupplBynavn{Navn: "Aavang", Href: "http://dawa.aws.dk/supplerendebynavne/Aavang", Kommuner: []KommuneRef{KommuneRef{Href: "http://dawa.aws.dk/kommuner/350", Kode: "0350", Navn: "Lejre"}}, Postnumre: []PostnummerRef{PostnummerRef{Href: "http://dawa.aws.dk/postnumre/4320", Navn: "Lejre", Nr: "4320"}}},
SupplBynavn{Navn: "Åved", Href: "http://dawa.aws.dk/supplerendebynavne/%C3%85ved", Kommuner: []KommuneRef{KommuneRef{Href: "http://dawa.aws.dk/kommuner/550", Kode: "0550", Navn: "Tønder"}}, Postnumre: []PostnummerRef{PostnummerRef{Href: "http://dawa.aws.dk/postnumre/6780", Navn: "Skærbæk", Nr: "6780"}}},
}

b := bytes.NewBuffer([]byte(suppl_bynavn_json_input))
Expand Down
8 changes: 4 additions & 4 deletions postnumre.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import (
)

type Postnummer struct {
Href string `json:"href"` // Postnummerets unikke URL.
Kommuner []Kommune `json:"kommuner"` // De kommuner hvis areal overlapper postnumeret areal.
Navn string `json:"navn"` // Det navn der er knyttet til postnummeret, typisk byens eller bydelens navn. Repræsenteret ved indtil 20 tegn. Eksempel: ”København NV”.
Nr string `json:"nr"` // Unik identifikation af det postnummeret. Postnumre fastsættes af Post Danmark. Repræsenteret ved fire cifre. Eksempel: ”2400” for ”København NV”.
Href string `json:"href"` // Postnummerets unikke URL.
Kommuner []KommuneRef `json:"kommuner"` // De kommuner hvis areal overlapper postnumeret areal.
Navn string `json:"navn"` // Det navn der er knyttet til postnummeret, typisk byens eller bydelens navn. Repræsenteret ved indtil 20 tegn. Eksempel: ”København NV”.
Nr string `json:"nr"` // Unik identifikation af det postnummeret. Postnumre fastsættes af Post Danmark. Repræsenteret ved fire cifre. Eksempel: ”2400” for ”København NV”.
// Never set to anything but null
Stormodtageradresser []AdgangsAdresseRef `json:"stormodtageradresser"` // Hvis postnummeret er et stormodtagerpostnummer rummer feltet adresserne på stormodtageren.
}
Expand Down
Loading

0 comments on commit bc56779

Please sign in to comment.