Vi skifter sikkerhetssertifikat!

Eksisterende sikkerhetssertifikatet for https://www.vegvesen.no går ut på dato den 9.2.2014, og vi planlegger å fornye det 3.2 kl 12.

I en ideell verden skal dette skje uten at brukerne merker noe som helst. Dessverre må vi nok anta at en del av våre brukere må oppdatere sertifikatinformasjon. Det er noen standardtricks med «AddTrust External CA Root»*  og lignende; eksakt hva og hvordan avhenger jo av hvilken klient og plattform du bruker. Nytt sertifikat kan lastes ned fra vegvesen.no.

 

Er vegen kommunens eller statens ansvar?

Etter de forrige innleggene har vi fått en del spørsmål — hvordan kan vi enklest mulig vise om vegen er kommunens  eller statens (d.v.s. Statens Vegvesens)  ansvar? Aller helst skulle vi vist de kommunale vegene i en farge, mens europa-riks- og fylkesveger ble en annen farge. (Fylkesveger er selvsagt fylkeskommunens ansvar, men Vegvesenet hjelper til på vegne av fylkeskommunen).

Dette klarer vi ikke i dagens vegkart-løsning. Den som vil lage sine egne kartløsninger kan glede seg over at logikken støttes i maskineriet bak (vårt åpne api), men dette hjelper dessverre ikke våre ivrige vegkart-brukere. Det nærmeste vi kommer er en av disse løsningene:

  • Løsning 1 (den enkleste) Marker alle kommunale veger (skogsbilveg, privat veg, kommunal veg), slik som nedenfor. Veger uten markering er da statens ansvar.
  • Løsning 2 Utvid den løsningen vi foreslo her ved å legge til tre nye vegreferanse – elementer, hvert med et egenskapsfilter lik h.h.v. Vegkategori=Europaveg, Fylkesveg eller Riksveg. Dette blir en veldig komplisert løsning, med svært mange klikk før man er i mål. Resultatet har masse glade farger som jeg personlig synes blir utrolig rotete, men det er jo smak og behag.

Her viser vi hvordan den første løsningen blir seende ut:

Vegkart - søk: Vegreferanse på private, kommunale og skogsbilveger i Kristiansand.

Nei, det er ikke så mange skogsbilveger i Kristiansand sentrum. Men sammen med kommunale og private veger er de en del av det «kommunale vegnettet» som ikke er statens ansvar.

Lenke til dette søket.

Husk at for akkurat dette søket kan du bli grundig lurt av maksgrensen på antall objekter i kartet. P.t. har vi standardgrense på 500 objekter samtidig, og du skal ikke zoome så veldig langt ut før du er over denne grensen. Klikk på #-symbolet til høyre for Vegreferanse for å øke til et mer rimelig tall.

 

 

Fartshumper på fylkesveger

Det er på tide å si noe om filtrering på vegkategori — eller mer presist: Hva slags type veg det er — og hvem som eier vegen. Vi har i dag disse seks vegkategoriene:

Europaveger
Riksveger
Fylkesveger
Kommunalveger
Privatveger
Skogsbilveger

Merk at Motorveg ikke er noen vegkategori, men en egen objekttype. Igjen anbefaler vi den aldeles utmerkede håndbok v830 (Nasjonalt vegreferansesystem), som har en aldeles utmerket innføring i emnet.

Alle søk i vegkart (og NVDB-api) kan filtreres på vegkategori!

For eksempel kan vi finne alle fartshumper på fylkesveger i Trondheim med dette søket:

Vegkart-søk på fartsdempere langs fylkesveger i Trondheim kommune.

Vegkart-søk på fartsdempere langs fylkesveger i Trondheim kommune.

Lenke til søket. Vi kan også føye til flere vegkategorier i samme søk.

For en tid tilbake viste vi også et eksempel hvor vi gjorde kreativ bruk av egenskapsfiltrering for å vise kommunale veger, private veger og skogsbilveger med separate farger i vegkart. (Se eksempel). Dette kunne vi gjøre fordi objektet Vegreferanse har egenskapstypen Vegkategori. Men vegreferanse-objektet er helt spesielt på mange måter (igjen, vi viser til håndbok v830), og dette trickset kan vi ikke bruke på noen av de andre objekttypene.

Men — felles for alle data i NVDB er at vi kan avgrense søket til hvilken veg som objektet er knyttet til, slik vi gjør med fartshumpene over (gi meg fartshumper langs fylkesveger). Vi kan også avgrense et spesifikt vegnummer, for eksempel fylkesveg 901 i Trondheim kommune:

Vegkart-søk fartsdempere langs Fv901 i Trondheim kommune.

Fartsdempere langs Fv901 i Trondheim kommune.

Lenke til dette søket.

Hvor står skiltet?

Jeg fikk en rutebeskrivelse over telefon, men fikk ikke helt med meg eksakt hvor og i hvilken retning jeg skulle svinge av fra E6, og både lydkvalitet og uvant dialekt var barrierer mot effektiv kommunikasjon.

Det som berget situasjonen var opplysningen om «trur det er skiltet til Hovin» — og litt kreativ bruk av vegkart.

Objekttype skiltplate med filter Tekst = Hovin gir 5 treff i aktuelt område, resten var trivielt.

Vegkart-søk på skilt med teksten "Hovin" i Trøndelag

Skilt med teksten «Hovin» i Trøndelag

Lenke til dette søket.

Er vegen kommunal eller privat?

I vegkart kan man klikke på en veg og få opp en såkalt vegreferanse.

Vegreferanse vist i Vegkart

Vegreferanse

Her får du opp en litt i overkant kryptisk kode:  «KV 4500 H1 m713»

Den første bokstaven («K» ) forteller deg at vegen er kommunal, mens tallet 4500 er selve vegnummeret. For skogsbilveger er første bokstav «S», private veger har en «P», mens europa-, riks-, og fylkesveger har «E», «R» eller «F». Resten av koden er grundig forklart her: Nasjonalt vegreferansesystem – håndbok v830

Men hvordan kan jeg få et kart som viser hvilke veger som er kommunale og private?

Med den nye versjonen av vegkart kan du nå søke på flere ganger på samme objekt. Kombinert med egenskapsfilter kan du for eksempel søke tre ganger på objektet «vegreferanse» med filter for vegkategori lik kommunal, privat og skogsbilveg, og dette vil bli tegnet opp med ulike farger i kartet. For eksempel slik:

Vegkart-søk for å vise private v.s. kommunale veger - og skogsbilveger

Vegkart-søk for å vise private v.s. kommunale veger – og skogsbilveger

Lenke til dette søket

Visst finnes det verktøy der det er mer intuitivt og kjappere å få fram kart over kommunale versus private veger. Vi har absolutt ingen ambisjon om at vegkart skal være førstevalg til absolutt alt — noen oppgaver er og blir mer rett fram i andre verktøy, og det er slik det skal være.

Vi vil først og fremst vise at vegkart nå kan brukes på nye og mer kreative måter, med enda smartere spørringer.

Tilføyelse: Vegreferanse er på mange måter spesiell, og den eneste objekttypen som har egenskapen Vegkategori som vi kan utnytte på akkurat denne måten. Hvis vi ønsker å avgrense søk etter andre typer data til f.eks. kommunale veger eller fylkesveger må vi gjøre ting på en litt annen måte. Vi sier litt mer om dette i dette innlegget.

Beta-testingens brutale ansikt

Sukk … så skjedde det igjen. Smidig og greit skulle vi rulle ut nye versjoner av vegkart og NVDB api, med masse nye, kjekke funksjoner. Og dette skulle naturligvis skje uten at brukerne merket annet enn at ny versjon plutselig kom på plass… Vi må tydeligvis bruke beta-perioden aktivt til å perfeksjonere både det ene og det andre.

Oppgradering av node tar ca halvannet døgn eller noe — søkeindeksen må bygges opp fra scratch. Ett av poengene med flere noder er jo nettopp at disse nodene IKKE er synlige mens dette foregår. Dette har vi tydeligvis ikke fått til denne gangen, feil noder blir eksponert ut på adressen https://www.vegvesen.no/nvdb/api/.Da er det ikke så forferdelige mye spennende vegdata på https://www.vegvesen.no/vegkart/vegkart/  heller .

Vi tror og håper alt virker som normalt igjen ganske snart. Men erfaringene har vel lært oss at det ikke er lurt å love noe.

Hva er forbindelsen mellom ELVEG, VBASE og NVDB?

Vegnettsdataene FKB veg, Elveg og Vbase bruker alle elementet TRANSID som unik nøkkel på akkurat denne vegstrekningen. Bruken av TransID er eldre enn NVDB, men NVDB er i dag orginalkilden til både TransID (og øvrige vegnettsdata). Disse TransID’ene vedlikeholdes i NVDB under navnet Transportlenke. NVDB ID’en til et transportlenke-objekt er identisk med transID-verdien i Elveg, Vbase eller FKB veg. Dermed er det trivielt å hente data ut fra det nye NVDB-api’et.

Et transportlenke-objekt i NVDB har vegreferanse (vegnummer, parsellnummer) og meterverdier (til-fra). Vegreferanse er en av tre mulige måter å søke opp vegstrekninger i NVDB (de to andre er geometri og ID til veglenken, ref http://api.vegdata.no/verdi/vegreferanse.html  ). Vegreferanser stammer fra tiden før presis satelittnavigasjon, og er en menneskelig forståelig måte å navigere vegnettet på. Interesserte kan lese mer om dette fascinerende temaet i den utmerkede håndbok v830 – anbefalt lesning!

Det å bruke vegreferanse som koblingsnøkkel har et par ulemper: Vegnettsendringer blir ikke håndtert på en robust måte, i tillegg til at kommunenummer og vegnummer kan endres ved et pennestrøk. Men bruken av vegreferanse er veldig innarbeidet. Som «dynamisk» oppslagsnøkkel funker det helt greit. Men ønsker du systemintegrasjon med persistent koblingsnøkkel mot NVDB bør du bruke NVDB ID til objektet — eller veglenkeID og posisjon.

Eksempel fra Elveg-SOSI versjon 4.0  (Eigersund kommune, Elveg-leveranse 1.9.2013)

.KURVE 2:
..OBJTYPE VegSenterlinje
..KVALITET 60 200
..DATAFANGSTDATO 20001206
..TRANSID 145816634
..KOMM 1101
..VNR K V 100
..VPA 1 28 48
..VKJORFLT 1#2
..VFRADATO 19500101
..NØH
652134340 -1759380 8560 ...KP 1
..NØH
652134680 -1759020 8570
652134930 -1758660 8590
652135270 -1758190 8620
652135580 -1757820 8650 ...KP 1

TransID’en kan da søkes opp i NVDB slik: https://www.vegvesen.no/nvdb/api/v2/vegobjekter/539/145816634.xml

Begrepet «TransID» eksisterer for øvrig ikke lenger fra og med Sosi 4.5. I stedet brukes de generelle Sosi-mekanismene for identifikasjon – slik:

..IDENT
...LOKALID 145816634
...NAVNEROM NVDB_Transportlenker

Hvordan laste vegnett fra NVDB inn i QGIS med 6 linjer Python

I dag ble Kartverkets og Statens vegvesens skattekister åpnet, et frislipp mange har ventet på lenge. Vi hadde gleden av å presentere en ny prototype for dataleveranser av vegnett, hvor vegnettet kan hentes på GeoJSON-format gjennom en REST-basert webtjeneste: http://vegnett.vegdata.no/ Prototypen er lagt i graven

Kombinasjonen GeoJSON og REST kan gi mange muligheter i GIS-verktøy, spesielt de som har integrasjon mot språk som Python. Dette innlegget beskriver hvor enkelt og raskt det er å importere vegnettet inn klienten Quantum GIS (QGIS), som er basert på åpen kildekode.

APIet som tilbyr vegnett har foreløpig ikke mange paremetere, siden det kun er en prototype. En bruker har følgende valg:

  • Hent vegnettet innenfor hele Norge, innenfor et bestemt fylke, eller innenfor en bestemt kommune.
  • Hent vegnettet innenfor én eller flere vegkategorier: Europaveg (E), RIksveg (R), Fylkesveg (F), Kommunalveg (K), Privatveg (P), Skogsbilveg (S)

For å importere vegnettet inn i QGIS, er det ønskelig å lage en funksjon i Python som oppretter et nytt vektorlag. Funksjonen skal ha tre innparametere:

  1. Lokasjon
  2. Vegkategorier
  3. Lagnavn
def lag(sted, vegkategori, navn):
    api = 'http://vegnett.vegdata.no/nvdb/api/vegnett/' 
    uri = api+sted+'.json?kategori='+vegkategori

    lag = QgsVectorLayer(uri, navn, "ogr")
    QgsMapLayerRegistry.instance().addMapLayer(lag)

UTDATERT – denne vegnetts-prototypen eksisterer ikke lengre. Vegnettsendepunktet til NVDB api V1 kan brukes i stedet. Eksempel 

Merk at NVDB api’et V2 har fått nytt vegnett-endepunkt.

Ovenfor er den ferdige funksjonen, med 5 linjer Python-kode, pluss et mellomrom for å øke lesbarheten. De tre øverste linjene er selvforklarende.

Den nest nedeste linjen laster et vektorlag fra APIet, ved hjelp av OGR-biblioteket: http://www.qgis.org/en/docs/pyqgis_developer_cookbook/loadlayer.html

Den nederste linjen registrerer laget i QGIS sitt brukergrensesnitt: http://www.qgis.org/en/docs/pyqgis_developer_cookbook/canvas.html

Funksjonen kan kalles på følgende måte:

lag('17/19', 'ERF', 'Levanger ERF')

Koden ovenfor laster ned alle europa-, riks- og fylkesveger i Levanger kommune. Lokasjon angis ved hjelp av fylke- og kommunenummer. For en rask referanse, kan dere benytte samme liste som APIet prototypen benytter: http://vegnett.vegdata.no/js/lokasjon.js

Nedenfor er et utsnitt fra QGIS etter at koden ovenfor er kjørt.

vegnett-prototype

Med den grunnleggende funksjonen i boks, er det lett å utvide med mer avanserte spørringer etter data. Funksjonen nedenfor henter hele vegnettet i en bestemt fylke eller kommune, og oppretter samtidig ett lag for hver vegkategori.

def lag_kategorier(sted, navn):
    vegkategorier = ['e', 'r', 'f', 'k', 'p', 's']

    for kategori in vegkategorier:
        lag(sted, kategori, navn+' '+kategori)

 

Prototyp: Last ned vegnett fra NVDB api

Nedlastingsløsning for vegnettsdata.

Det skal være like enkelt å laste ned vegnett som alle andre NVDB data!

 

Fredag 27. september 2013 ble sentrale kartdata frigitt av Kartverket og Statens vegvesen, inkludert Norges digitale vegnett fra Nasjonal vegdatabank (NVDB). Dette betyr at produktet Elveg, som inneholder alle kjørbare veger og deres egenskaper, nå kan lastes ned kostnadsfritt. I tillegg frigjør vi — som annonsert tidligere — de samme vegnettsdataene vi bruker i vegvesenets ruteplantjeneste.

Lenke til vegnett-prototyp: http://vegnett.vegdata.no/

Vi ønsker å gjøre informasjonen fra NVDB så lett tilgjengelig som mulig. For å møte den økende etterspørselen etter våre data, vil vi utvikle en tidsriktig og fremtidsrettet webtjeneste hvor dere fritt kan velge de informasjonselementene dere er interesserte i. Det er allerede lansert et API hvor de fleste fagdata (fartsgrenser, skilt, rekkverk med mer) kan hentes, men der er foreløpig ikke indrefileten i NVDB; selve vegnettet, tilgjengeliggjort.

Vi har testet ut (geo)json i QGIS, med dynamisk nedlasting fra dette API’et. Funker helt utrolig nydelig!

“Vegnett prototype” er første steg på veien til å lage en enkel webtjeneste som levererer på vegnettet på maskinlesbare. Dette en prototype vi lanserer for å først og fremst få tilbakemeldinger på hvordan tjenesten bør utformes. Datasettet vil derfor inneholde feil og mangler, da det ikke er vårt aller nyeste datagrunnlag, og er heller ikke kvalitetssikret i like stor grad som Elveg-produktet. Datasettet vil heller ikke bli oppdatert i prototype-perioden.

Informasjon fra Nasjonal vegdatabank tilgjengeliggjøres under Norsk lisens for offentlige data. Dette betyr at Informasjonen kan, med de begrensningene som følger av lisensen, brukes til ethvert formål og i en enhver sammenheng. Informasjonen kan inneholde feil og utelatelser, og Statens vegvesen gir ingen garantier for informasjonens innhold eller aktualitet.

Ved bruk av informasjon fra Nasjonal vegdatabank, skal følgende tekst alltid oppgis: «Inneholder data under norsk lisens for offentlige data (NLOD) tilgjengeliggjort av Statens vegvesen.»

Hvordan finner jeg skilt med elg og julenisser?

Hvordan kan jeg finne posisjonen til alle elg-skilt i Norge via vegatabankens API? 🙂 Hva med løpende nisse med sekk-skilt?

Se opp for elg!

Fare for elg!
@ http://www.flickr.com/photos/antoinettejanssen/7016975067/ etter CC-lisens

Skilt er relativt komplisert å finne ut av – men håndbok 050 Trafikkskilt er til god hjelp. Det er også verdt å merke seg at vi skiller mellom skiltpunkt (fundamentet, om du vil) og skiltplate (selve tegningen). Ett skiltpunkt kan ha ett eller flere skiltplater som datterobjekter.

Elgskiltet er en skiltplate der egenskapen Skiltnummer HB-050 er satt lik 146.1 – Elg. I moderne nettlesere får du adskillig hjelp med å velge lovlige blant lovlige verdier for disse feltene. Her er f.eks. søk på elgskilt i Elverum (vegkart). Tilsvarende søk i API’et:

https://nvdbapiles-v3.atlas.vegvesen.no/vegobjekter/96?segmentering=true&egenskap=(5530%3D8867)&kommune=3420&inkluder=lokasjon%2Cmetadata%2Cegenskaper%2Cgeometri%2Cvegsegmenter

Hvis du tør kan du jo prøve å hente elgene direkte i nettleseren din: https://nvdbapiles-v3.atlas.vegvesen.no/vegobjekter/96?segmentering=true&egenskap=(5530%3D8867)&kommune=3420&inkluder=lokasjon%2Cmetadata%2Cegenskaper%2Cgeometri%2Cvegsegmenter

… men dette vil ikke funke i alle nettlesere.

Men hvor finner vi Julenissen???

Ryktene florerer om at det er observert julenisser i datakatalogen natt til 25. desember, men dette har ikke latt seg verifisere innenfor normal arbeidstid. Vi er nødt til å konkludere med at julenisser ikke er en gyldig objekttype i datakatalogen. Men det står da beviselig et julenisseskilt i Drøbak (der julenissen bor):

Annen fare - julenisse (c) julehus.no

Annen fare – julenisse
(c) julehus.no

Etter litt detektivarbeid har vi funnet ut at denne skiltplaten har nummer 156 – Annen fare og teksten Julenisse. Og ja – som dere ser  (vegkart-søk etter julenisseskilt) finnes det bare en forekomst i NVDB