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