Presentasjoner fra utviklerdagen 2018

Alle presentasjonene fra utviklerdagen 2018 er nå tilgjengelige her.

Minner om:

 

Vegbilder

Personvernombud Annegret Andersen har gitt oss råd og anbefaling om hvordan vi skal håndtere vegbildene som i dag er tilgjengelige via applikasjonene NVDB123, GisLine og ViaPhoto. Vi går ikke til det drastiske skrittet å slette bildene, men iverksetter strakstiltak som i første omgang begrenser tilgangen til eksisterende bilder. I tillegg vil vi jobbe med tiltak som sørger for at vi ikke lagrer personsensitiv informasjon i bildende i framtida. Retningslinjer for tildeling av tilgang til bildene vil bli utarbeidet slik at de som har bruk for bildene i jobben sin vil få tilgang. Les videre

Visveginfo har gamle data – hva betyr det?

Fiksa 30.august 2018

 

Er det viktig for meg?

Neppe, med mindre du jobber med stedfesting og lagring av nye data til NVDB, eller har et system som bruker Visveginfo direkte.

Har du et system som baserer seg på Visveginfo så er det helt klart en ulempe at du ikke har med vegnettsendringer etter juli 2018.

Vegkart er ikke berørt, heller ikke når du ber om strekninger.

Hva var problemet?

Visveginfo er et system for vegnettspørringer fra 2011. Visveginfo utfyller NVDB api’et på et veldig god måte, for eksempel med topologi- og strekningsspørringer. Men én av utfordringene er at vi har to parallelle dataflyt-løyper til NVDB api og Visveginfo:

  • Visveginfo oppdateres en gang i døgnet i en (litt gammal) løype som er til dels sårbar.
    • Vi leser transaksjonsloggen fra NVDB databasen, og det går veldig bra så lenge den har «normal» drift med mange relativt små endringer.
    • Men av og til får vi en gigantisk transaksjon der svært mange objekter i NVDB er endret samtidig.Da stopper alt opp.
    • Vi får det i gang igjen ved å dele opp en gigant-transaksjon i mindre biter, men det er plundrete og tar tid.
  • NVDB api oppdateres fortløpende. Gigant-transaksjonslogger har vært et problem her også, men dette er blitt løst.

Nå – 29. august – plundrer vi ennå med en gigantisk transaksjon fra slutten av juli. Dette blir ble løst 30. august.

Stedfesting i datafangst blir vanskelig uten Visveginfo

Datafangst er Vegvesenets nye verktøy for mottak, kvalitetskontroll og beriking av data entreprenørene sender oss om det de har bygget. Før data kan lagres i NVDB må de knyttes til riktig vegnett. Og det blir jo litt vanskelig når den nye vegen ligger i kø bak en gigantisk transaksjonslogg.

Her er f.eks en ganske fersk gangsti på Tjøme, Vestfold

Ny gangsti langs Fv390, Vestfold.

Ny gangsti langs Fv390, Vestfold.

Men datafangst viser frem vegnett fra Visveginfo, og har derfor ikke den nye gangstien som alternativ. Da er det jo vanskelig å stedfeste belysning på gangstien, der det hører hjemme:

Skjermdump datafangst-verktyøyet, der gangstien mangler. Da blir det litt vanskelig å stedfeste nye belysningspunkt på gangstien

Datafangst henter vegnett fra Visveginfo, og der er ikke gangstien kommet med ennå. Merk at gangstien er synlig som en grå strek i bakgrunnskartet, men IKKE tilgjengelig som gyldig vegnett du kan stedfeste på i Datafangst.

Hvordan sjekker jeg om mine data er berørt?

Du kan bruke denne kartløsningen. Den henter data både fra Visveginfo og NVDB api. Da ser du fort om de er enige, eller om det er avvik. Mer om dette kartet.

Skjermdump som viser kartløsning der NVDB api tilbyr gangstien som nærmeste vegnett, mens Visveginfo har kun hovedvegen

NVDB api tilbyr gangstien som nærmeste vegnett, mens Visveginfo har kun hovedvegen

Nedenfor ser du at Fv390 har fått nye meterverdier. Nvdb API gir ca 7 meter lavere tall enn Visveginfo.

Skjermbilde som viser at Visveginfo har høyere meterverdier enn NVDB api på Fv390, Vestfold

Hvor finner jeg kollektivfelt?

Hvordan kan jeg finne kollektivfelt eller andre typer kjørefelt i NVDB?

Informasjon om kjørefelt er i NVDB lagret på de enkelte veglenke-delene. Den som liker å programmere kan lese mer om datastrukturen her: http://api.vegdata.no/endepunkt/vegnett.html

For resten av oss er 616 Feltstrekning til stor hjelp. Inntil relativt nylig var det på denne objekttypen vi lagret oversikt over kjørefeltene. Denne blir fremdeles holdt a jour: Ved vegnettsredigering kopieres kjørefelt-informasjon fra veglenkene over på 616-objektet, mer presist som tekst i egenskapsverdien feltoversikt.

Fiffige vegkart-søk med stjernefilter

Kollektivfelt har koden «K», og vi finner dem med filteret «feltoversikt = *K*. De to stjernene (*) betyr at du kan ha hvilken som helst tekst foran og bak bokstaven K.

Søk etter kollektivfelt med objekttypen 616 feltstrekning og filteret feltoversikt = *K*

Lenke til dette vegkart-søket

Hva betyr tallene og kodene?

Feltene er numerert i stigende rekkefølge fra senterlinja og utover, oddetall til høyre og partall til venstre, sett fra starten på veglenka.

Oversikt over hvordan vi teller kjørefelt i NVDB

Felt uten bokstaver er helt vanlige kjørefelt, mens spesialfelt som sykkelfelt (S), kollektivfelt (K), ferjeoppstillingsplass (O) og svingefelt (H eller V) har egne bokstavkoder i tillegg til nummerering.

Den fulle oversikten finnes i den utmerkede håndbok v830 Nasjonalt vegreferansesystem, der figuren er hentet fra.

Hashtag # som skilletegn!

Vi bruker hashtag – # – for å skille kjørefeltene fra hverandre.

Hashtag er skilletegn mellom kjørefeltene

API LES 2018-1 og 2018-2 er nå i PROD

Vi har fått ut to nye leveranser på NVDB API LES hittil i 2018:

Nytt

Datoformat:

  • [NVDB-2376] – Ny reponsrevisjon med ISO-dato: Se http://api.vegdata.no/responsrevisjoner.html

Vegnett:

  • [NVDB-2512] – Foreldrelenkeid er nå tilgjengelig i API-responsen for lenker på detaljert nivå
  • [NVDB-2022] – Korrekt angivelse av typeVeg

Geometri:

  • [NVDB-2654] – Ekstra queryparameter for å droppe overflødig geometri: Vi leverer i noen tilfeller 3 geometrier for et objekt. Geometri kan ta stor plass i en respons, spesielt for lange strekningsobjekter. Vi har nå lagt til en query-parameter som gjør at man kan velge hvilke(n) geometri man vil ha. Parameteren heter inkludergeometri og kan ha fire verdier; egenskap, lokasjon, utledet, og ingen

Rettet

  • [NVDB-1658] – Områdenefiltre og avanserte filtre kan ikke kombineres. Man vil nå få en feilmelding: [{«code»: 4009,»message»: «Lokasjonsfiltre og avanserte filtre kan ikke kombineres.»,»help_url»: «http://api.vegdata.no/endepunkt/vegobjekter.html«}]
  • [NVDB-2245] – Geometri veksler mellom to og tre koordinater: I slike tilfeller fyller vi nå ut de manglende høydeverdiene med den fiktive høyden «-999999»
  • [NVDB-2284] – Filtrering på shortdatetype egenskaper gir NPE. Vi støtter nå Egenskapsdatatypen shortDateType
  • [NVDB-2297] – Forbedret håndtering av feil spørringer mot API’et.
  • [NVDB-2299] – For lang request-URI: Lange spørringer, f.eks. Spørringer med mange vegreferanse-filtre resulterte i feilmelding fra søkeindeksen. Dette skal vi nå tåle.
  • [NVDB-2321] – Feilmelding når noen prøver laste ned blobs. Vi støtter ikke nedlasting av binærobjekter fra NVDB. Før kræsjet vi, nå gir vi feilmelding.
  • [NVDB-2354] – Vi håndterer ikke StructAttributeType. Men vi kræsjer heller ikke lengre. Dokumentasjonen er oppdatert, se: http://api.vegdata.no/parameter/egenskapsfilter
  • [NVDB-2398] – Vegreferanse-endepunktet (v2) gir en lenkeposisjon. I tilfeller der angitt vegreferansefilter treffer akkurat på et skille mellom to vegreferanseobjekter, returnerer vi nå konsistent det objektet som starter på posisjonen skal returneres, i tråd med lokasjonslogikken i NVDB [fra og med, til> . Vi har også rettet et grensetilfelle der den utregnede stedfestinga kan i slike tilfeller ha flere desimaler enn stedfestinga i NVDB, og hvis man da skyter over vil man ikke finne riktig lenkekomponent (0,026341528989496002 > 0,026341528989496).
  • [NVDB-2506] – Bedre sjekk av datatype på egenskapsfiltre i spørring
  • [NVDB-2520] – Endepunktet for /vegnett/lenker/ID støtter nå parameteren SRID og gir koordinater i det angitte koordinatsystemet.
  • [NVDB-2547] – kombinasjon av != filtre fungerte feil.
  • [NVDB-2551] – Bedre håndtering av spesialtegn i spørring: Tegnene ( ) [ ] : – + ^ | & ; / ~ og mellrom har spesiell betydning i søkemaskineriet vårt. Disse tegnene vil nå bli behandlet før spørringen utføres..
  • [NVDB-2591] – Oppslag på vegref på med fylke og kommune mangler geometri og lokasjon. Dersom vegreferanse-filter er oppgitt med kommunenummer = 0 så blir det ikke filtrert på kommunenummer. Vi får da ut geomtri og lokasjon slik vi ønsker.
  • [NVDB-2627] – Bedre håndtering av ufullstendige vegreferanse-filtre
  • [NVDB-2749] – Sidepos må snus ved stedfesting mot metrering: I NVDB 123 brukes metreringsretningen for å angi hvilke side av vegen et objekt ligger på.I Vegkart brukes lenkeretningen for å angi hvilke side av vegen et objekt ligger på. I de tilfeller hvor lenkeretning og metreringsretning er forskjellig blir hvilke side av vegen objektene ligger på også forskjellig. Dette er noe de fleste ikke bør måtte forholde seg til og et problem/utfordring for vegkart. Vi prøver å nå å tolke sideposisjonen riktig.
  • [NVDB-2830] – Ikke mulig å bruke egenskapsfilter på kontraktsområde og riksvegrute:Spørringer med områdefilter og vanlig egenskapsfilter er mulig og gir responser med lokasjon. Spørringer med områdefilter og egenskapsfilter med link eller relasjon gir samme melding som nå, «Lokasjonsfiltre og avanserte filtre kan ikke kombineres.»
  • [NVDB-2688] – Vi kræsjet med NPE ved overlappsspørringer der overlapps-objekttypen ikke eksisterte.
  • [NVDB-2764] – Kartutsnitt-søk returnerer punkter utenfor angitt kartutsnitt. Dette er nå rettet for UTM33, der vi har øket presisjonen i spørringene.
  • [NVDB-2915] – Rettet en feil med vegreferanseoppslag som skyldtes tull med sorteringen av resultater fra søkeindeksen.
  • [NVDB-2952] – Kan ikke søke og filtrere på negative tall. Strengere input-kontroll førte til at vi ignorerte søk på negative tall. Det har vi nå lagt tilbake.

 

APISKRIV 2018-1: Ny versjon av APISKRIV i PROD

Vi har idag fått ut en feilrettingsleveranse for NVDB APISKRIV APISKRIV 2018-1. Leveransen inneholder en rekke feilrettinger som har kommet inn det siste halve året.  

  • [NVDB-2155] – Kan ikke kombinere tempId og nvdbId i en assosiasjon

Det har virket som om det ikke er lov å kombinere referanse til nye og gamle objekter i en assosiasjon. Det er det, men alle relasjonene til eksisterende objekter må komme før relasjonene til nye objekter, altså:

<assosiasjoner>
    <assosiasjon typeId="220373">
           <nvdbId>459899</nvdbId>
           <tempId>Datter#1</tempId>
    </assosiasjon>
 </assosiasjoner>
  • [NVDB-2162] – Kan ikke ta imot % tegn i egenskapsverdier:

For eksempel: <verdi>%P</verdi> Vi har rettet en feil og sørger nå for å  automatisk “escape” prosent-tegnet med et ekstra prosent-tegn (%%P) – slik at verdien blir riktig satt i NVDB. 

  • [NVDB-2168] – Viser flere enn blokkerende låser

Dersom et endringssett havner i status VENTER_PÅ_LÅS, så skal man fra kontrollpanelet kunne se hvilken lås man har en konflikt med. Det har vært vanskelig til nå, siden vi har listet opp alle låser. Det gjør vi ikke lengre.

  • [NVDB-2169] – Kan ikke flytte mor og datter samtidig

Ved validering berikes et endringssett med eksisterende data fra NVDB. I de tilfellene man forsøkte å flytte mor og datter samtidig, fikk man tidligere feil dersom objekttypen krever at datter skal være stedfestet innenfor mor. Feilen skyldtes at vi sammenliknet den gamle stedfestingen til moren med den nye stedfestingen til datteren. Nå sammenlikner vi de nye stedfestingene og da skal dette gå bra. Så lenge mor og datter flytter til samme sted.

  • [NVDB-2266] – Får ikke lov til å flytte moren når man ikke har lov til å flytte datteren.

I de tilfellene man har lov til å flytte en mor og det ikke er noe krav om at de må bo på samme sted, har man også fått feil dersom man ikke også har rettigheter til å flytte på datterobjektet. Flere av dere syntes det var noe strengt ettersom dere ikke forsøkte å flytte på datteren i det hele tatt. Nå skal dette la seg gjøre.  

  • [NVDB-2750] – Feilmelding på innlest assosiasjon mot ikke-eksisterende datter

Det hender at døtre flytter hjemmefra. I noen tilfeller slettes objekter i NVDB mens relasjonen består. Siden vi validerer mot et beriket endringssett har dette ført til avvisning av endringssettet ettersom objektet ikke regnes som et gyldig objekt. Det er fremdeles ikke et gyldig objekt, men det er litt strengt at du da heller ikke får lov til å endre på det. Nå får du endret på det, men får også en advarsel.

  • [NVDB-2270] – Vegobjekt med tom lokasjon avvises ikke

Alle objekter i NVDB må være stedfestet til vegnettet. Noen har derfor stusset over at man får lov til å registrere endringssett med nye objekter uten lokasjon. Man fikk ikke lov til å starte dem dog. Nå blir de AVVIST tvert.

  • [NVDB-2290] – Avvist når stedfesting toucher konnekteringslenke

Logikk for utstrekning av stedfestinger i NDVB er fra og med, til. Vi har vært litt for rause og tillat til og med. Det er uheldig når en stedfesting slutter an mot en konnekteringslenke, ettersom endringssettet da blir avvist. Fra nå av er det fra og med, til. Ikke til og med.

  • [NVDB-2317] – AVVIS geometrier som er en blanding av 2D og 3D.

Tidligere har vi litt lettsindig godtatt geometrier som har en blanding av 2D og 3D koordinater. Dette har ført til systemfeil i behandlingen. Nå har vi fått på plass en validering og avviser geometrier som ikke blir enige med seg selv om de skal være i 2 eller 3 dimensjoner..

  • [NVDB-2327] – Burde avvise overlappende stedfestinger

Strekningslokasjoner kan settes sammen av flere elementer, f.eks.

          <linje lenkeId=«7657» fra=«0.5» til=«0.6000000000001»/>
           <linje lenkeId=«7657» fra=«0.6» til=«0.6000000000001»/>

Disse to delene overlapper og det er ikke lov.  Nå blir de også AVVIST

  • [NVDB-2364] – Unødvendig streng låse-blokkering?

API SKRIV har hatt en strengere tolkning av låse-reglene i NVDB en det som har vært vanlig i andre verktøy. Nå har vi akkurat samme tolkning. Vi bruker faktisk akkurat samme prosedyre i databasen for å avdekke konflikter.

  • [NVDB-2792] – Sjekker ikke duplikate nvdbId i delvisKorriger

Det er er ikke lov å korrigere et objekt to ganger i samme endringsett. Hvis man prøver seg på dette nå, vil endringssettet bli AVVIST med meldingen  «Må være unik: nvdbId».

 

I tillegg har vi gjort en del forbedringer i kontrollpanelet og litt genrell opprydding på bakrommet.