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

18 lines
414 KiB
JSON
Raw Normal View History

2023-06-26 08:42:12 +02:00
{
2023-06-26 10:22:18 +02:00
"hash": "42f3aaeb85e732a3fa2d43cff30b0d49",
2023-06-26 08:42:12 +02:00
"result": {
2023-06-27 11:24:48 +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() %>%\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<div class=\"leaflet html-widget html-fill-item-overflow-hidden html-fill-item\" id=\"htmlwidget-f8d996c1b5a3ebf3c2e5\" style=\"width:100%;height:464px;\"></div>\n<script type=\"application/json\" data-for=\"htmlwidget-f8d996c1b5a3ebf3c2e5\">{\"x\":{\"options\":{\"crs\":{\"crsClass\":\"L.CRS.EPSG3857\",\"code\":null,\"proj4def\":null,\"projectedBounds\":null,\"options\":{}}},\"calls\":[{\"method\":\"addTiles\",\"args\":[\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y
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
}
}