Map your Strava activities
[This article was first published on r.iresmi.net, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Use the Strava API to map your outings with R using the {rStrava} package.
library(tidyverse)
library(leaflet)
library(rStrava)
library(sf)
# Get your credentials from https://www.strava.com/settings/api
app_name <- "*******"
client_id <- "*******"
client_secret <- "*******"
#' Convert Google polylines from Strava activities to {sf} polylines
#'
#' @param gp string : encoded polyline
#'
#' @return {sf} polyline
gp2sf <- function(gp) {
gp |>
googlePolylines::decode() |>
map_dfr(
function(df) {
df |>
st_as_sf(coords = c("lon", "lat")) |>
st_combine() |>
st_cast("LINESTRING") |>
st_sf()
}) |>
pull(1)
}
# Get activities
activities <- httr::config(
token = strava_oauth(
app_name,
client_id,
client_secret,
app_scope = "activity:read_all",
cache = TRUE)) |>
get_activity_list() |>
compile_activities()
# Map
activities |>
mutate(geom = gp2sf(map.summary_polyline)) |>
st_sf(crs = "EPSG:4326") |>
leaflet() |>
addTiles() |>
addPolylines()

To leave a comment for the author, please follow the link and comment on their blog: r.iresmi.net.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.