Gå til hovedinnhold

Avanserte filtre i API

API-et tillater utførelse av komplekse spørringer som filtrerer på relaterte objekter og objekter som overlapper hverandre. Et enkelt spørrespråk brukes for å spesifisere avanserte spørringer, og er støttet i /vegobjekter-endepunktet.

Eksempler på Avanserte Spørringer

  • Filtrering på Objekter som Overlapper: Filtrering på objekter som overlapper hverandre. For eksempel, alle trafikkulykker på strekninger med fartsgrense over 80 km/t.

  • Filtrering på Relaterte Objekter: Filtrering på relaterte objekter (mor/datter relasjoner). For eksempel, alle trafikkulykker med ulykkesinvolvert person over 70 år.

  • Kombinerte Spørringer: Kombinasjon av overlapp og relasjoner i samme spørring. For eksempel, alle trafikkulykker på strekninger med fartsgrense over 80 km/t og ulykkesinvolvert person over 70 år.

Forutsetninger for Avanserte Spørringer

For å bruke avanserte spørringer effektivt, kreves det inngående kunnskap om NVDBs datakatalog, inkludert hvordan objekter modelleres og deres relasjoner. Datakatalog-ID-er benyttes som parametere for å sikre at spørringer forblir gyldige selv ved navneendringer på objekttyper eller egenskaper.

Eksempler på Spørringer

  • Trafikkulykker med Skadegrad "Alvorlig Skadet" på Strekning med Fartsgrense 80 km/t: /vegobjekter/570?egenskap="egenskap(5074)=6429"&overlapp=105(egenskap(2021)=2738)"
  • Tunneler på Fylkesvei med Høydebegrensning <4m: /vegobjekter/581?egenskap=relasjon(67, relasjon(591, egenskap(5277)<4))&vegreferanse="F"

Filtrering på Egenskaper

Egenskapsfiltrering utføres med egenskap-funksjonen. Denne funksjonen tar en egenskaps-ID som parameter og returnerer verdien for objektets egenskap.

  • Eksempel: Bruer bygget etter år 2000: /vegobjekter/60?egenskap="egenskap(10278)>=2000"

Kombinasjon og Filtrering på Flere Egenskaper

Man kan kombinere og filtrere på flere egenskaper ved å bruke AND og OR-operatorene.

  • Eksempel: Filtrering av bruer etter byggeår og lengde: /vegobjekter/60?egenskap="egenskap(10278)>=2000 AND egenskap(1313)<=100"

Filtrering på Relasjoner

Filtrering på relaterte objekter gjøres via relasjon-funksjonen. Denne tar en objekttype-ID som første parameter, og et nytt egenskapsfilter som andre parameter.

  • Eksempel: Tunneler med Tunnelløp lengre enn 2km: /vegobjekter/581?egenskap=relasjon(67, egenskap(1313)>2000)

Filtrering på Overlappende Objekter

API-et filtrerer også på objekter som er stedfestet sammen ved bruk av overlapp-parameteren.

  • Eksempel: Trafikkulykker på samme sted som tunnelløp: /vegobjekter/570?overlapp=67

Overlapp med Egenskapsfilter

Overlappfilter kan kombineres med egenskapsfilter.

  • Eksempel: Trafikkulykker på samme sted som fartsgrense lik 80 km/t: /vegobjekter/570?overlapp=105(egenskap(2021)=2738)

Funksjoner og Operatorer

Spørrespråket inneholder funksjoner som overlapp, egenskap og relasjon, samt sammenligningsoperatorer som =, !=, >, <, in, notin, AND og OR.

Avsluttende Merknader

Det er viktig å bruke punktum i desimaltall og anførselstegn for strenger. Bruk null for å filtrere på om en egenskap har verdi eller ikke. Parenteser støttes også for å gruppere betingelser.

Eksempel på Bruk av Parenteser

Trafikkulykke på lørdag eller søndag med skadegrad "Alvorlig skadd": (egenskap(5054)=6248 OR egenskap(5054)=6249) AND egenskap(5074)=6429