familien.gdamsbo/_freeze/blog/canada_camper/execute-results/html.json

18 lines
414 KiB
JSON
Raw Permalink Normal View History

2023-06-26 08:42:12 +02:00
{
2023-06-27 14:29:16 +02:00
"hash": "5971c007d91a77c761cd5c7b1ce7dd3a",
2023-06-26 08:42:12 +02:00
"result": {
2023-06-27 14:29:16 +02:00
"markdown": "---\ntitle: Canada i camper\nlang: da\ndate: last-modified\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(\"<br/>\",camper$Name),paste0(\"<b><a href='\",camper$Description,\"'>\",camper$Name,\"</a></b>\")),\n \"<br/>\",paste(\"Ankomst:\",tolower(format(as.Date(camper$Arrival),\"%d. %B\"))),\n \"<br/>\",paste(\"Nætter:\",camper$Nights),\n \"<br/>\",paste(\"Tid til næste:\",round(trips[[1]]$trip$duration,1),\"min\"),\n \"<br/>\",paste(\"Afstand til næste:\",round(trips[[1]]$trip$distance,1),\"km\"),\n ifelse(camper$Notes!=\"\",paste0(\"<br/>\",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(group = \"Estimated route\") %>%\n addMarkers(data = camper[-nrow(camper),],\n icon = icons_list,\n popup = content[-nrow(camper)], \n label = ~Name, \n group = \"Points\") |> \n addLayersControl(\n baseGroups = c(\"OSM (standard)\", \"Topografisk\"),\n overlayGroups = c(\"Estimated route\", \"Points\"),\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# Vejledning til at opsætte en lokal server med mulighed for modificeret profil.\n# https://www.r-bloggers.com/2017/09/building-a-local-osrm-instance/\n# Download specifikke områder: http://download.geofabrik.de/\n# \n# Lastbil profil (den minder vel mere om en camper?): https://github.com/Project-OSRM/osrm-profiles-contrib/blob/master/5/27/truck-soft/car.lua\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
2023-06-26 08:42:12 +02:00
"supporting": [],
"filters": [
"rmarkdown/pagebreak.lua"
],
"includes": {
"include-in-header": [
"<script src=\"../site_libs/htmlwidgets-1.6.2/htmlwidgets.js\"></script>\n<script src=\"../site_libs/jquery-1.12.4/jquery.min.js\"></script>\n<link href=\"../site_libs/leaflet-1.3.1/leaflet.css\" rel=\"stylesheet\" />\n<script src=\"../site_libs/leaflet-1.3.1/leaflet.js\"></script>\n<link href=\"../site_libs/leafletfix-1.0.0/leafletfix.css\" rel=\"stylesheet\" />\n<script src=\"../site_libs/proj4-2.6.2/proj4.min.js\"></script>\n<script src=\"../site_libs/Proj4Leaflet-1.0.1/proj4leaflet.js\"></script>\n<link href=\"../site_libs/rstudio_leaflet-1.3.1/rstudio_leaflet.css\" rel=\"stylesheet\" />\n<script src=\"../site_libs/leaflet-binding-2.1.2/leaflet.js\"></script>\n<script src=\"../site_libs/leaflet-providers-1.9.0/leaflet-providers_1.9.0.js\"></script>\n<script src=\"../site_libs/leaflet-providers-plugin-2.1.2/leaflet-providers-plugin.js\"></script>\n"
]
},
"engineDependencies": {},
"preserve": {},
"postProcess": true
}
}