## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 5, fig.height = 5
)

## ---- include=FALSE-----------------------------------------------------------

library(dplyr)
library(GISSB)

# Laster inn filene #
# vegnett <- sf::read_sf("C:/Users/rdn/Downloads/Samferdsel_0000_Norge_25833_NVDBRuteplanNettverksdatasett_FGDB/vegnettRuteplan_FGDB_20210528.gdb", 'ERFKPS')

# OBS
# graph <- readRDS(file = "C:/Users/rdn/Documents/Kart/Vegnett/graph.rds")
# nodes <- readRDS(file = "C:/Users/rdn/Documents/Kart/Vegnett/nodes.rds")
# edges <- readRDS(file = "C:/Users/rdn/Documents/Kart/Vegnett/edges.rds")
# graph_cppRouting_minutes <- readRDS(file = "C:/Users/rdn/Documents/Kart/Vegnett/graph_cppRouting_minutes.rds")
# graph_cppRouting_meters <- readRDS(file = "C:/Users/rdn/Documents/Kart/Vegnett/graph_cppRouting_meters.rds")


## ---- eval=TRUE---------------------------------------------------------------
fra <- GISSB::address_to_coords(zip_code = "0177",
                         address = "Akersveien 26")

fra

til <- GISSB::address_to_coords(zip_code = "2211",
                         address = "Otervegen 23")

til

## ---- eval=TRUE---------------------------------------------------------------
postnummere = c("0177", "2211")
adresser = c("Akersveien 26", "Otervegen 23")

fra_4326 <- GISSB::address_to_coords(zip_code = postnummere,
                         address = adresser,
                         crs_out = 4326)
fra_4326

## ---- eval=TRUE---------------------------------------------------------------
leaflet::leaflet(width = "100%") %>%
  leaflet::addTiles() %>%
  leaflet::addMarkers(data = fra_4326$geometry)

## ---- eval=TRUE---------------------------------------------------------------
fra <- GISSB::coords_to_google(fra)
fra$coords_google

til <- GISSB::coords_to_google(til)
til$coords_google

## ---- eval=FALSE--------------------------------------------------------------
#  vegnett <- sf::read_sf("vegnettRuteplan_FGDB_20210528.gdb", 'ERFKPS')
#  
#  ggplot2::ggplot() +
#    ggplot2::geom_sf(data = vegnett)

## ---- echo=FALSE, error = TRUE, out.width = "100%"----------------------------
knitr::include_graphics(paste0(here::here(), "/vignettes/images/vegnett_2021.png"))

## ---- eval=FALSE--------------------------------------------------------------
#  vegnett_list <- vegnett_to_R(vegnett = vegnett_sampledata,
#                              year = 2021,
#                              fromnodeID = "FROMNODEID",
#                              tonodeID = "TONODEID",
#                              FT_minutes = "FT_MINUTES",
#                              TF_minutes = "TF_MINUTES",
#                              meters = "SHAPE_LENGTH")
#  
#  graph <- vegnett_list[[1]]
#  nodes <- vegnett_list[[2]]
#  edges <- vegnett_list[[3]]
#  graph_cppRouting_minutes <- vegnett_list[[4]]
#  graph_cppRouting_meters <- vegnett_list[[5]]

## ---- eval=FALSE--------------------------------------------------------------
#  from_node <- GISSB::coords_to_node(coords = fra, direction = "from")
#  from_node
#  
#  to_node <- GISSB::coords_to_node(coords = til, direction = "to")
#  to_node

## ---- eval=FALSE--------------------------------------------------------------
#  from_node <- GISSB::coords_to_node(coords = fra, direction = "from", membership = FALSE)
#  
#  to_node <- GISSB::coords_to_node(coords = til, direction = "to", membership = TRUE)

## ---- eval=FALSE--------------------------------------------------------------
#  avstand_min <- GISSB::shortest_path_igraph(from_node_ID = from_node$from_node,
#                             to_node_ID = to_node$to_node,
#                             unit = "minutes",
#                             path = F)
#  
#  paste0(round(avstand_min$length, digits = 1), " minutter / ",
#         substr(avstand_min$length/60, 1, 1),
#         " timer og ",
#         round(avstand_min$length, digits = 0)-as.numeric(substr(avstand_min$length/60, 1, 1))*60, " minutter")
#  
#  avstand_meter <- GISSB::shortest_path_igraph(from_node_ID = from_node$from_node,
#                                   to_node_ID = to_node$to_node,
#                                   unit = "meters",
#                                   path = F)
#  
#  paste0(round(avstand_meter$length, digits = 1), " meter / ",
#         round(avstand_meter$length/1000, digits = 1), " km."
#         )
#  

## ---- eval=FALSE--------------------------------------------------------------
#  path <- GISSB::shortest_path_igraph(from_node_ID = from_node$from_node,
#                             to_node_ID = to_node$to_node,
#                             unit = "minutes",
#                             path = TRUE)
#  
#  path$epath

## ---- eval=FALSE--------------------------------------------------------------
#  GISSB::path_leaflet(path)

## ---- eval=FALSE--------------------------------------------------------------
#  avstand_cpp_min <- GISSB::shortest_path_cppRouting(from_node$from_node,
#                                         to_node$to_node,
#                                         unit = "minutes",
#                                         graph_cppRouting_object = graph_cppRouting_minutes)
#  
#  avstand_cpp_min
#  
#  avstand_cpp_meter <- GISSB::shortest_path_cppRouting(from_node$from_node,
#                                         to_node$to_node,
#                                         unit = "meters",
#                                         graph_cppRouting_object = graph_cppRouting_meters)
#  
#  avstand_cpp_meter

## ---- eval=FALSE--------------------------------------------------------------
#  
#  adresser <- c("Sykehusveien 25",
#                "Sognsvannsveien 20",
#                "Kirkeveien 166",
#                "Parkvegen 35",
#                "Kirkevegen 31",
#                "Sjukehusveien 9",
#                "Sogneprest Munthe-Kaas vei 100")
#  
#  postnummere <- c("1474",
#                "0372",
#                "0450",
#                "2212",
#                "2413",
#                "2500",
#                "1346")
#  
#  til <- GISSB::address_to_coords(zip_code = postnummere,
#                           address = adresser) %>%
#    GISSB::coords_to_google()
#  
#  to_node <- GISSB::coords_to_node(coords = til, direction = "to", membership = F)
#  
#  to_node
#  
#  fra <- GISSB::address_to_coords(zip_code = c("0177", "2211"),
#                           address = c("Akersveien 26", "Otervegen 23")) %>%
#    GISSB::coords_to_google()
#  
#  from_node <- GISSB::coords_to_node(coords = fra, direction = "from", membership = T)
#  
#  from_node
#  
#  avstand_cpp <- GISSB::shortest_path_cppRouting(unique(from_node$from_node),
#                                         unique(to_node$to_node),
#                                         unit = "minutes")
#  avstand_cpp
#  
#  avstand_cpp_min <- GISSB::shortest_path_cppRouting(unique(from_node$from_node),
#                                         unique(to_node$to_node),
#                                         unit = "minutes",
#                                         dist = "min")
#  avstand_cpp_min
#  
#  avstand_cpp_max <- GISSB::shortest_path_cppRouting(unique(from_node$from_node),
#                                         unique(to_node$to_node),
#                                         unit = "minutes",
#                                         dist = "max")
#  avstand_cpp_max
#  
#  
#