diff --git a/.gitignore b/.gitignore index 599468b..fa506a6 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,5 @@ rsconnect/ /.quarto/ food/refs/ + +osrm-backend/ diff --git a/_freeze/blog/canada_camper/execute-results/html.json b/_freeze/blog/canada_camper/execute-results/html.json index 60fd30c..b4a90c5 100644 --- a/_freeze/blog/canada_camper/execute-results/html.json +++ b/_freeze/blog/canada_camper/execute-results/html.json @@ -1,7 +1,7 @@ { - "hash": "42f3aaeb85e732a3fa2d43cff30b0d49", + "hash": "5971c007d91a77c761cd5c7b1ce7dd3a", "result": { - "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(\"
\",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
\n\n```\n:::\n:::\n\n\n## Kommentarer\n\nKortet er et lille forsøg på at binde forskelligt indhold sammen og visualisere det på en let tilgængelig og interaktiv måde.\n", + "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(\"
\",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(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}\n```{=html}\n
\n\n```\n:::\n:::\n\n\n## Kommentarer\n\nKortet er et lille forsøg på at binde forskelligt indhold sammen og visualisere det på en let tilgængelig og interaktiv måde.\n", "supporting": [], "filters": [ "rmarkdown/pagebreak.lua" diff --git a/blog/canada_camper.qmd b/blog/canada_camper.qmd index 76960a4..62e36a6 100644 --- a/blog/canada_camper.qmd +++ b/blog/canada_camper.qmd @@ -79,18 +79,26 @@ map <- leaflet(trip) %>% # addProviderTiles(providers$HERE.satelliteDay, # group = "Satelit") %>% setView(lng = median(camper$Longitude), lat = median(camper$Latitude), zoom = 7) %>% - addPolylines() %>% + addPolylines(group = "Estimated route") %>% addMarkers(data = camper[-nrow(camper),], icon = icons_list, popup = content[-nrow(camper)], - label = ~Name) |> + label = ~Name, + group = "Points") |> addLayersControl( baseGroups = c("OSM (standard)", "Topografisk"), + overlayGroups = c("Estimated route", "Points"), options = layersControlOptions(collapsed = FALSE) ) # Hjælp til lige at komme det sidste stykke med at tegne ruten på: # https://stackoverflow.com/a/60940696/21019325 + +# Vejledning til at opsætte en lokal server med mulighed for modificeret profil. +# https://www.r-bloggers.com/2017/09/building-a-local-osrm-instance/ +# Download specifikke områder: http://download.geofabrik.de/ +# +# 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 ``` Her er ikke tale om en overspringshandling. diff --git a/docs/blog.html b/docs/blog.html index dcca48e..7968934 100644 --- a/docs/blog.html +++ b/docs/blog.html @@ -179,7 +179,7 @@ ul.task-list li input[type="checkbox"] {
- diff --git a/docs/blog/canada_camper.html b/docs/blog/canada_camper.html index 65d14bd..19b3b4d 100644 --- a/docs/blog/canada_camper.html +++ b/docs/blog/canada_camper.html @@ -207,7 +207,7 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin
Udgivet
-

26. juni 2023

+

27. juni 2023

@@ -284,18 +284,26 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin
# addProviderTiles(providers$HERE.satelliteDay, # group = "Satelit") %>% setView(lng = median(camper$Longitude), lat = median(camper$Latitude), zoom = 7) %>% - addPolylines() %>% + addPolylines(group = "Estimated route") %>% addMarkers(data = camper[-nrow(camper),], icon = icons_list, popup = content[-nrow(camper)], - label = ~Name) |> - addLayersControl( - baseGroups = c("OSM (standard)", "Topografisk"), - options = layersControlOptions(collapsed = FALSE) - ) - -# Hjælp til lige at komme det sidste stykke med at tegne ruten på: -# https://stackoverflow.com/a/60940696/21019325
+ label = ~Name, + group = "Points") |> + addLayersControl( + baseGroups = c("OSM (standard)", "Topografisk"), + overlayGroups = c("Estimated route", "Points"), + options = layersControlOptions(collapsed = FALSE) + ) + +# Hjælp til lige at komme det sidste stykke med at tegne ruten på: +# https://stackoverflow.com/a/60940696/21019325 + +# Vejledning til at opsætte en lokal server med mulighed for modificeret profil. +# https://www.r-bloggers.com/2017/09/building-a-local-osrm-instance/ +# Download specifikke områder: http://download.geofabrik.de/ +# +# 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

Her er ikke tale om en overspringshandling.

@@ -311,8 +319,8 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin
map
-
- +
+
diff --git a/docs/search.json b/docs/search.json index 74b500b..383f131 100644 --- a/docs/search.json +++ b/docs/search.json @@ -11,7 +11,7 @@ "href": "blog/canada_camper.html", "title": "Canada i camper", "section": "", - "text": "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\nHer er ikke tale om en overspringshandling." + "text": "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\nHer er ikke tale om en overspringshandling." }, { "objectID": "blog/canada_camper.html#kommentarer", @@ -158,6 +158,6 @@ "href": "blog.html", "title": "Blog", "section": "", - "text": "Her handler det om alle mulige familieprojekter. Det kommer nok til at lugte lidt af kode og IT også.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCanada i camper\n\n\n\nCanada\n\n\nRejse\n\n\nBørn\n\n\nR\n\n\n\nLidt om vores campertur.\n\n\n\nAndreas\n\n\n26. jun. 2023\n\n\n\n\n\n\n\n\nIngen resultater" + "text": "Her handler det om alle mulige familieprojekter. Det kommer nok til at lugte lidt af kode og IT også.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCanada i camper\n\n\n\nCanada\n\n\nRejse\n\n\nBørn\n\n\nR\n\n\n\nLidt om vores campertur.\n\n\n\nAndreas\n\n\n27. jun. 2023\n\n\n\n\n\n\n\n\nIngen resultater" } ] \ No newline at end of file