{
"hash": "9663223e621b0ec750fde6f8afd7a0d3",
"result": {
"markdown": "---\ntitle: Canada i camper\ndate: 2023-06-22\ndescription: Lidt om vores campertur.\nauthor: Andreas\nimage: \"images/canada_map.png\"\ncategories:\n - Canada\n - Rejse\n - Børn\n - R\n---\n\n\n# Kode\n\n\n::: {.cell}\n\n```{.r .cell-code code-summary=\"Kode til oversigtskort\"}\n# Original export from plotting in OsmAnd on phone\n# bookmarks <- gpx::read_gpx(file = \"data/favorites_canada_2023.gpx\")\n\n# Udtræk til .csv, herefter manuelt tilpasset, sorteret og tilføjet yderligere data.\n# write.csv(bookmarks$waypoints,\"data/camper_points.csv\")\n\nlibrary(dplyr)\n\ncamper <- read.csv(\"data/camper_points.csv\",)[-1] |> arrange(Order)\n\n# Alternative source from RVParky export\n# RVParky er fed, men fornyligt er det blevet en betalingstjeneste. Hvorfor er den ikke integreret i OSM?\n# vnc <- gpx::read_gpx(file = \"data/vancouver-trip.gpx\")\n\n## Iconer\nmatching <- c(car=\"images/key.png\", \n bed=\"images/rv.png\", \n house=\"images/house.png\")\n\nlibrary(leaflet)\n\nicons_list <- icons(\n iconUrl = matching[match(camper$Icon,names(matching))],\n iconWidth = c(40),\n iconHeight = c(40)\n)\n\n## Så er det tid til at bruge Open Street Routing Machine\n\nlibrary(osrm)\n\n# osrmTable(loc = camper |> transmute(lon=Longitude,lat=Latitude))\n\ntrips <- osrmTrip(loc = camper |> transmute(lon=Longitude,lat=Latitude), overview = \"full\",\n osrm.profile = \"car\")\ntrip <- trips[[1]]$trip\n\n# There exists a lua filter for truck, put I can't figure how to implement.\n# I suppose I would have to run a local OSRM instance...\n\n## HTML labels til kortet\n\ninvisible(Sys.setlocale(\"LC_TIME\", \"da_DK\"))\n\ncontent <- paste0(\n ifelse(substr(camper$Description,1,4)!=\"http\"|is.na(camper$Description),paste0(\"
\",camper$Name),paste0(\"\",camper$Name,\"\")),\n \"
\",paste(\"Ankomst:\",tolower(format(as.Date(camper$Arrival),\"%d. %B\"))),\n \"
\",paste(\"Nætter:\",camper$Nights),\n \"
\",paste(\"Tid til næste:\",round(trips[[1]]$trip$duration,1),\"min\"),\n \"
\",paste(\"Afstand til næste:\",round(trips[[1]]$trip$distance,1),\"km\"),\n ifelse(camper$Notes!=\"\",paste0(\"
\",paste(\"Noter:\",camper$Notes)),\"\")\n)\n\n## Interaktivt kort med `leaflet`\n\nmap <- leaflet(trip) %>%\n addTiles(group = \"OSM (standard)\") %>%\n addProviderTiles(providers$OpenTopoMap,\n group = \"Topografisk\") %>%\n # addProviderTiles(providers$HERE.satelliteDay,\n # group = \"Satelit\") %>%\n setView(lng = median(camper$Longitude), lat = median(camper$Latitude), zoom = 7) %>%\n addPolylines() %>%\n addMarkers(data = camper[-nrow(camper),],\n icon = icons_list,\n popup = content[-nrow(camper)], \n label = ~Name) |> \n addLayersControl(\n baseGroups = c(\"OSM (standard)\", \"Topografisk\"),\n options = layersControlOptions(collapsed = FALSE)\n )\n\n# Hjælp til lige at komme det sidste stykke med at tegne ruten på:\n# https://stackoverflow.com/a/60940696/21019325\n```\n:::\n\n\nHer er ikke tale om en overspringshandling.\n\n# Forklaring\n\nLige om lidt tager vi til Canada i tre måneder som led i min PhD-uddannelse.\n\nFørst holder vi lidt ferie. På dag 2 kører vi afsted i en lejet camper og har 14 dage i den, hvor vi skal udforske den sydvestlige del af British Colombia.\n\nVores rute er tegnet in på kortet herunder.\n\n\n::: {.cell}\n\n```{.r .cell-code code-summary=\"Print kort\"}\nmap\n```\n\n::: {.cell-output-display}\n```{=html}\n