Brug de officielle adressewebservices til at validere brugerens indtastning

Erhvervs- og Byggestyrelsen har lanceret en række adresse webservices, som kan benyttes til at slå adresseoplysninger op med. De mange services er gratis at bruge, og vil kunne finde anvendelse i rigtig mange applikationer. Formålet er at højne kvaliteten af adressedata i forskellige applikationer igennem en central vedligeholdt adressedatabase.

Et eksempel kunne være et check for om en bruger indtaster korrekte adresseoplysninger i en webformular. Et andet eksempel kunne være automatisk valg af by på baggrund af postnummer.

Jeg har prøvet at bruge de gratis adresse webservices til at programmere de to ovenstående scenarier. I det ene scenarie anvender jeg JQuery autosuggest til at forsøge at lave en www.rejseplanen.dk funktion, som er i stand til at slå adressen op efterhånden som brugeren indtaster. Det fungerer desværre ikke helt vildt godt, da de nuværende metoder i webservicen ikke benytter wildcard-søgning, men i stedet en slags fuzzy logic søgning, som er i stand til at finde en adresse ud fra forskellige stavemåder.En anden årsag er, at da der er tale om gratis webservices, så går det temmelig langsomt. På min egen udviklingsmaskine oplevede jeg, at visse forespørgsler kunne tage 12 – 15 sekunder.

Men i slutningen af april måned kommer der en ny opdateret version. Denne vil indeholde wildcard-søgning, og serverparken bliver opgraderet. Og så vil det være rigtig anvendeligt.

Jeg har vedhæftet kildekoden til denne blogpost, og så kan du selv prøve dig frem. Kort fortalt går det ud på følgende:

image

Ovenstående kode finder et bynavn på baggrund af et postnummer eller en del af et postnummer. ‘71’ vil derfor finde både ‘7100’ og ‘7120’, osv. Jeg starter med at etablere en adresseservice via GetAddressService, laver derefter min request via GetPostCodeByPostCodeIdentifierRequestType og eksekverer til sidst min forespørgsel via addressService.GetPostCodeByPostCodeIdentifier.

På grund af webservicens dårlige performance, så anvender jeg caching. Det betyder, at den første forespørgsel er temmelig langsom, men de efterfølgende forespørgsler går hurtigt.

image

Dernæst har jeg lavet en simpel HTML-side, som indeholder to felter til henholdsvis postnummer og by. Via JQuery Autocomplete slår jeg op, får et resultat tilbage, og når brugeren vælger den rigtige by, så fordeler jeg værdierne ud på henholdsvis postnummer og by.

“Rejseplanen.dk”-funktionen er også med i vedhæftede kildekode.

Du kan læse meget mere om de officielle adressewebservices her: http://www.ebst.dk/aws

Du finder mere information og nyheder her: http://digitaliser.dk/group/334445

Dokumentationen finder du her: http://digitaliser.dk/resource/334598/artefact/1+Systembeskrivelse.pdf

Og endelig kan du downloade min kildekode her: http://cid-c352fc667ec78374.skydrive.live.com/self.aspx/aws/aws.7z

Advertisements

3 thoughts on “Brug de officielle adressewebservices til at validere brugerens indtastning

  1. Du har ret. Jeg afventer også selv, inden jeg smider noget i produktion.

    Jeg lagde også mærke til en sjov og lidt uprofessionel ting. Deres oprindelige plan var at opgradere til den nye version uden at den gamle version kørte videre. Prøv lige at gætte hvor mange applikationer, der i så fald ville ligge i flammer dagen efter… 😉

  2. Ja – helt vildt
    Har dog d.d. modtaget denne mail:

    —–Oprindelig meddelelse—–
    Fra: noreply@digitaliser.dk [mailto:noreply@digitaliser.dk]
    Sendt: 9. marts 2010 11:09
    Til: Kevin Steffer
    Emne: Udsat overgang

    Kære Venner

    Alt for kunderne. Vi venter med at gå til 2.0 indtil vi har en ny hardware platform at flytte til. Beskrivelsen af version 2 forventes inden månedens udgang.

    VH

    Kristian
    ——
    Sendt fra Digitalisér.dk på vegne af Kristian K. Hansen, AWS

    Klik her for at se brugerprofilen eller for at sende en besked til afsenderen (kræver log ind): https://login.digitaliser.dk/user/334296

    Pyyyhaaaaaaa 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s