Ruteberegning i V4
Hva brukes ruteberegning til?
Dette brukes internt av stedfestingstjenesten blant annet. Når man bruker denne tjnesten så oppgir man start- og
slutt-punkt og så finner tjenesten veglenksekvenser med start- og slutt-posisjoner man må følge på vegnettet for å komme
fra a til b. Med start- og slutt-posisjon kan man sende inn lenkesekvenser eller man kan sende inn xy-punkt i UTM33.
Man kan også sende inn en geometri, f.eks en linjegeometri og så få beregnet en rute som følger denne geoemtrien.
Tjenesten vil finne sammenhengende vegnett for å komme fra a til b og liste opp disse som venlenksekvenser (kortform=true)
eller som vegsegmenter (kortform=false)
.
Endepunkt man benytter for å beregne ruter er:
https://nvdbapiles.atlas.vegvesen.no/beta/vegnett/rute
Swagger dokumentasjon av ruteendepunkt finner du her: https://nvdbapiles.atlas.vegvesen.no/webjars/swagger-ui/index.html?urls.primaryName=Vegnett#/Rute
Eksempel på en ruteberegning og respons fra tjenesten
Sender man inn en ruteberegnings-forespørsel med start- og slutt-posisjon i UTM33 som dette:
https://nvdbapiles-v3.atlas.vegvesen.no/beta/vegnett/rute?start=226506.69517676393,6564521.030523449
&slutt=226565.63365050522,6564518.030882485&maks_avstand=10&omkrets=100&konnekteringslenker=true
&detaljerte_lenker=true&behold_trafikantgruppe=false&pretty=true&kortform=true
Så får man et svar som følger:
{
"vegnettsrutesegmenter" : [ {
"type" : "Linje",
"veglenkesekvensid" : 1148895,
"startposisjon" : 0.84649793,
"sluttposisjon" : 0.85527022,
"kortform" : "0.84649793-0.85527022@1148895"
}, {
"type" : "Linje",
"veglenkesekvensid" : 1148895,
"startposisjon" : 0.76608446,
"sluttposisjon" : 0.84649793,
"kortform" : "0.76608446-0.84649793@1148895"
} ],
"metadata" : {
"antall" : 2,
"lengde" : 58.881,
"status" : 2000,
"status_tekst" : "KOMPLETT"
}
}
Ting å tenke på når man skal gjøre ruteberegning
Når man skal ruteberegne er det noen ting man må ha i bakhodet:
- Når man beregner en rute fra a til b eller via geometri, så legges det på et ytre rektangel/et område rundt for ruteberegningen. Dette bestemmes med parameter omkrets og angis i meter. Om parameter ikke angis, så settes det til 100 meter. Det er ikke hensiktsmessig å sette denne verdien høy. Om du setter omkrets til 1000, så vil ruteberegningen hente inn 1000 meter med ekstra kart i nord, 1000 meter med ekstra kart i sør og tilsvarende i vest og øst.
- Parameter maks_avstand forteller hvor mange meter unna punktet kan være for å treffe en veglenke. Dette angis i meter. Om ingen verdi angis, blir verdien 10.
- Parameter konnekterings_lenker=true/false angir om man vil ha med konnekteringslenker. Anbefaler å ha satt dette til true.
- Om du ikke bare vil ha vegtrase, men ruteberegne over kjørebane så må du sette parameter detaljerte_lenker=true.
Jeg anbefaler deg å bruke dette nettstedet som viser deg kart og valgmuligheter du å har til å ruteberegne:
https://nvdb-vegdata.github.io/nvdb-visrute
Du kan beregne rute på forskjellige måter
Bergne rute med startlenke og sluttlenke
Oppgi parameter start=postisjon@veglenkesekvensid og slutt=postisjon@veglenkesekvensid.
Bergne rute med start- og slutt-posisjon
Oppgi parameter start=UTM33-koordinat og slutt=UTM33-koordinat
Eksempel:
start=226506.69517676393,6564521.030523449&slutt=226565.63365050522,6564518.030882485&maks_avstand=10&omkrets=100&konnekteringslenker=true
Beregne rute med geometri
Rute med geometri beregnes ved å sende helst som POST-request med geoemtri=wkt. Eksempel på wkt kan være
LINESTRING Z(226778.2 6564468.6 5, 226747.1 6564470.1 5, 226717.5 6564466.4 5, 226705.9 6564462.7 6.2,
226687.2 6564462.9 6, 226657.7 6564460.7 6, 226628.5 6564459.5 6, 226611.3 6564459.6 6.2)
Merk at når man beregner via geometri så, er det slik at geometrien er ment som en hjelpelinje for å styre rutebergeningen gjennom et område. Det betyr at punktene i geometrien du bruker vil ruteberegningen finne næremeste punkt ned på veglenkene.