Dokumentation af BiQ Locate Autocomplete

BiQ Locate Autocomplete er en JavaScript-komponent, der gør det nemt at tilføje adresse-autocomplete til webapplikationer. Komponenten hjælper brugeren med at indtaste en gyldig dansk adresse ved løbende at foreslå match, mens der skrives.

Baggrund

Komponenten er en videreudvikling af DAWA Autocomplete. DAWA Autocomplete udfases og afvikles ved udgangen af juni 2026, og BiQ Locate Autocomplete kan bruges som en moderne erstatning i løsninger, der har behov for adresseforslag og validering af danske adresser.

Hvordan den virker

Når komponenten er tilføjet til en side, kobles den på ét eller flere inputfelter. Når brugeren skriver, henter komponenten forslag fra BiQ Locate API'et og viser dem som en liste. Når brugeren vælger et forslag, kan den valgte adresse bruges i jeres løsning (fx vises, gemmes eller sendes videre i en formular).

Varianter

API (Swagger)

JavaScript-komponenten henter data fra et bagvedliggende API. Den fulde API-dokumentation (endpoints, parametre og modeller) findes her: https://locate-api.biq.dk/swagger/index.html

Adgang (Bearer Token)

For at bruge BiQ Locate Autocomplete skal du have en Bearer Token. Kontakt BiQ for at få udstedt en token: [email protected].


Teknisk beskrivelse af JavaScript-komponent

Komponenten eksponeres globalt som biqAutocomplete, når scriptet biq-autocomplete.min.js er indlæst på siden.

<script src="https://cdn.locate-autocomplete.biq.dk/assets/biq-autocomplete/1.0.1/biq-autocomplete.min.js"></script>
Tilgængelige funktioner
Funktion Formål
biqAutocomplete.biqAutocomplete(input, options) Autocomplete til en komplet adresse i ét inputfelt.
biqAutocomplete.biqPostnrAutocomplete(input, options) Autocomplete til postnummer/by.
biqAutocomplete.biqVejnavnAutocomplete(input, options) Autocomplete til vejnavn.
biqAutocomplete.biqHusnrAutocomplete(input, options) Autocomplete til husnummer baseret på valgt postnummer og vejnavn.
biqAutocomplete.biqEtageDørAutocomplete(input, options) Autocomplete til etage/dør baseret på valgt adgangsadresse.
Fælles options

Alle autocomplete-funktioner tager et input-element som første parameter og et options-objekt som anden parameter.

Option Type Standard Beskrivelse
bearerToken string null Bearer Token til BiQ Locate API'et. Sendes som Authorization: Bearer ....
baseUrl string https://locate-api.biq.dk/api/v1 Base URL til API'et. Skal normalt ikke ændres.
minLength number Varierer Minimum antal tegn før der søges efter forslag.
fuzzy boolean true Aktiverer fuzzy søgning, så forslag kan findes selv ved mindre stavefejl.
timeout number null Timeout i millisekunder for API-kald. Hvis null, bruges ingen komponentstyret timeout. Tilgængelig fra version 1.0.1
select function Callback der kaldes, når brugeren vælger et endeligt forslag.
error function Callback der kaldes ved fejl i API-kald. Tilgængelig fra version 1.0.1

Funktionen: biqAutocomplete

Funktion: biqAutocomplete bruges til autocomplete af adresser i ét felt.

const adresseInstance = biqAutocomplete.biqAutocomplete(adresseInput, {
    bearerToken: 'INSERT-YOUR-BEARER-TOKEN-HERE',
    select: function (selected) {
        console.log(selected.tekst);
        console.log(selected.data);
    },
    error: function (error) {
        console.error(error.message);
    }
});
Option Type Standard Beskrivelse
type string adresse Bestemmer typen der skal vælges. Typisk adresse eller adgangsadresse.
adgangsadresserOnly boolean false Hvis true, sættes type automatisk til adgangsadresse.
startfra string vejnavn Angiver hvilket trin autocomplete skal starte fra.
postnr string null Begrænser forslag til et bestemt postnummer.
kommunekode string null Begrænser forslag til en bestemt kommune.
adgangsadresseid string null Begrænser søgningen til en bestemt adgangsadresse.
supplerendebynavn boolean true Medtager supplerende bynavn i forslag.
multilinje boolean false Viser forslag over flere linjer, hvis API'et returnerer linjeskift i forslagsteksten.
debounce number Ikke sat Udskyder API-kald indtil brugeren holder pause med at skrive. Angives i millisekunder.
id string Ikke sat Kan bruges til at initialisere feltet med en eksisterende adresse-id.

Funktionen: biqPostnrAutocomplete

Funktionen: biqPostnrAutocomplete bruges til autocomplete af postnummer/by.

const postnrInstance = biqAutocomplete.biqPostnrAutocomplete(postnrInput, {
    bearerToken: 'INSERT-YOUR-BEARER-TOKEN-HERE',
    minLength: 1,
    select: function (selected) {
        console.log(selected.tekst);
        console.log(selected.data.nr);
        console.log(selected.data.navn);
    },
    error: function (error) {
        console.error(error.message);
    }
});
Option Type Standard Beskrivelse
nr string null Begrænser forslag til et bestemt postnummer.
minLength number 1 Minimum antal tegn før der søges.

Funktionen: biqVejnavnAutocomplete

Funktionen: biqVejnavnAutocomplete bruges til autocomplete af vejnavn.

const vejnavnInstance = biqAutocomplete.biqVejnavnAutocomplete(vejnavnInput, {
    bearerToken: 'INSERT-YOUR-BEARER-TOKEN-HERE',
    postnr: selectedPostnr,
    select: function (selected) {
        console.log(selected.tekst);
        console.log(selected.data.navn);
    },
    error: function (error) {
        console.error(error.message);
    }
});

// Kan bruges efter valg af postnummer:
vejnavnInstance.setPostnr('8000');
Option/metode Type Beskrivelse
postnr string Begrænser vejnavne til et valgt postnummer.
kommunekode string Begrænser vejnavne til en valgt kommune.
setPostnr(postnr) function Opdaterer postnummeret efter komponenten er oprettet.

Funktionen: biqHusnrAutocomplete

Funktionen: biqHusnrAutocomplete bruges til autocomplete af husnummer. Komponenten kræver både postnr og vejnavn, før der kan hentes forslag.

const husnrInstance = biqAutocomplete.biqHusnrAutocomplete(husnrInput, {
    bearerToken: 'INSERT-YOUR-BEARER-TOKEN-HERE',
    postnr: selectedPostnr,
    vejnavn: selectedVejnavn,
    select: function (selected) {
        console.log(selected.tekst);
        console.log(selected.data.id);
    },
    error: function (error) {
        console.error(error.message);
    }
});

husnrInstance.setPostnr('8000');
husnrInstance.setVejnavn('Åboulevarden');
husnrInstance.triggerSearch();
Option/metode Type Beskrivelse
postnr string Valgt postnummer.
vejnavn string Valgt vejnavn.
setPostnr(postnr) function Opdaterer postnummeret.
setVejnavn(vejnavn) function Opdaterer vejnavnet.
triggerSearch() function Henter forslag uden at brugeren først behøver skrive i husnummerfeltet.

Funktionen: biqEtageDørAutocomplete

Funktionen: biqEtageDørAutocomplete bruges til autocomplete af etage/dør. Komponenten kræver et adgangsadresseid, før der kan hentes forslag.

const etageDoerInstance = biqAutocomplete.biqEtageDørAutocomplete(etageDoerInput, {
    bearerToken: 'INSERT-YOUR-BEARER-TOKEN-HERE',
    adgangsadresseid: selectedAdgangsadresseid,
    select: function (selected) {
        console.log(selected.tekst);
        console.log(selected.data.betegnelse);
    },
    error: function (error) {
        console.error(error.message);
    }
});

etageDoerInstance.setAdgangsadresseid(selectedAdgangsadresseid);
etageDoerInstance.triggerSearch();
Option/metode Type Beskrivelse
adgangsadresseid string ID på den valgte adgangsadresse.
setAdgangsadresseid(id) function Opdaterer adgangsadresse-id efter komponenten er oprettet.
triggerSearch() function Henter forslag uden at brugeren først behøver skrive i feltet.

Callback funktionen: select

Når brugeren vælger et forslag, kaldes select-callbacken med et selected-objekt.

{
    "type": "adresse",
    "tekst": "Paradisvej 1, 2670 Greve",
    "caretpos": 24,
    "forslagstekst": "Paradisvej 1, 2670 Greve",
    "data": {
        "id": "0a3f50ab-15e4-32b8-e044-0003ba298018",
        "status": 1,
        "darstatus": 3,
        "vejkode": "6278",
        "vejnavn": "Paradisvej",
        "adresseringsvejnavn": "Paradisvej",
        "husnr": "1",
        "etage": null,
        "dør": null,
        "supplerendebynavn": null,
        "postnr": "2670",
        "postnrnavn": "Greve",
        "kommunekode": "0253",
        "adgangsadresseid": "0a3f5081-4090-32b8-e044-0003ba298018",
        "x": 12.28279732,
        "y": 55.57458801,
        "betegnelse": "Paradisvej 1, 2670 Greve"
    }
}
Felt Beskrivelse
forslagstekst Den tekst der vises i autocomplete-listen.
tekst Den tekst der indsættes i inputfeltet ved valg.
caretpos Cursorens placering efter valg.
type Typen af forslag. Bruges især i single field autocomplete.
data Det underliggende objekt fra API'et. Indholdet afhænger af den valgte autocomplete-type.

Callback funktionen: error

Hvis et API-kald fejler, kaldes error-callbacken med et fejlobjekt.

{
    "type": "http",
    "message": "BIQ autocomplete request failed with HTTP 401",
    "status": 401,
    "statusText": "Unauthorized",
    "context": "autocomplete",
    "originalError": null
}
Felt Beskrivelse
type Fejltype. Kan fx være network, http, parse eller timeout.
message Fejlbesked.
status HTTP-statuskode, hvis fejlen kommer fra API'et.
statusText HTTP-statustekst, hvis relevant.
url Den URL der blev kaldt.
context Intern kontekst for kaldet, fx autocomplete, postnr, vejnavn, husnr eller etageDør.
originalError Den oprindelige fejl, hvis der findes en.

Metoder på returnerede instanser

Metode Tilgængelig på Beskrivelse
destroy() Alle komponenter Fjerner event handlers og autocomplete-listen fra DOM'en.
selected() biqAutocomplete Returnerer senest valgte adresseobjekt for single field autocomplete.
id(id) biqAutocomplete Initialiserer eller opdaterer inputfeltet ud fra et eksisterende adresse-id.
setPostnr(postnr) biqVejnavnAutocomplete, biqHusnrAutocomplete Opdaterer valgt postnummer.
setVejnavn(vejnavn) biqHusnrAutocomplete Opdaterer valgt vejnavn.
setAdgangsadresseid(id) biqEtageDørAutocomplete Opdaterer valgt adgangsadresse-id.
triggerSearch() biqHusnrAutocomplete, biqEtageDørAutocomplete Starter en søgning manuelt, typisk efter et foregående felt er valgt.