Demo using the Leaflet interactive mapping library (see code below map).
The map shows a selection of day hikes around Queenstown, New Zealand of varying grades. Click the marker to reveal name and duration of hike and link to Google Maps.
Code:
library(dplyr)
library(leaflet)
googleURL <- function(lat, lng){
paste0(
'https://www.google.com/maps/search/?api=1&query=',
lat,
'%2C',
lng
)
}
makePopup <- function(name, length, lat, lng) {
paste0(
'<a target="_blank" href=',
googleURL(lat,lng),
'>',
name,
'</a><br>',
length,
' hours'
)
}
trails <- tibble(
name = 'Queenstown Hill', length = 3, grade = 'Medium',
lat = -45.02739840096245, lng = 168.66671562832803
) %>%
add_row(
name = 'Queenstown Gardens', length = 0.5, grade = 'Easy',
lat = -45.03194737861049, lng = 168.65615031303986
) %>%
add_row(
name = 'Franktom Arm Walkway', length = 1.5, grade = 'Easy',
lat = -45.045250433170686, lng = 168.68116663370773
) %>%
add_row(
name = 'Kelvin Peninsula Walkwaty', length = 1.5, grade = 'Easy',
lat = -45.02908276884795, lng = 168.73237468516353
) %>%
add_row(
name = 'Jack\'s Point to Jardine Park', length = 2.5, grade = 'Difficult',
lat = -45.08044977940483, lng = 168.72694640244626
) %>%
add_row(
name = 'Tiki Trail', length = 1, grade = 'Medium',
lat = -45.028688228408456, lng = 168.65603804276006
) %>%
add_row(
name = 'One Mile Creek Trail', length = 4, grade = 'Difficult',
lat = -45.000467129255355, lng = 168.62877553898514
) %>%
add_row(
name = 'Arrow River Trail', length = 1, grade = 'Easy',
lat = -44.93763728807441, lng = 168.83252306320583
) %>%
add_row(
name = 'Bush Creek Trail', length = 1, grade = 'Easy',
lat = -44.93804748481571, lng = 168.83005382757165
) %>%
add_row(
name = 'Big Hill Trail', length = 4, grade = 'Difficult',
lat = -44.92211595991365, lng = 168.82136623099498
) %>%
add_row(
name = 'Sawpit Gully Trail', length = 3, grade = 'Difficult',
lat = -44.93552107810251, lng = 168.83024644858804
) %>%
add_row(
name = 'Macetown Ghost Town Trail', length = 5, grade = 'Medium',
lat = -44.866564329102864, lng = 168.81964037310377
) %>%
add_row(
name = 'Lake Hayes Walkway', length = 2, grade = 'Medium',
lat = -44.98979215604306, lng = 168.80987952258636
) %>%
add_row(
name = 'Tobins Track', length = 1, grade = 'Medium',
lat = -44.94091794567632, lng = 168.84063145556857
) %>%
add_row(
name = 'Remarkables Ultimate Viewpoint', length = 3, grade = 'Difficult',
lat = -45.053765139424925, lng = 168.81284583456133
) %>%
add_row(
name = 'Moke Lake', length = 2, grade = 'Medium',
lat = -44.99745942401925, lng = 168.57198331694377
) %>%
add_row(
name = 'Mount Chrichton Loop Track', length = 6, grade = 'Difficult',
lat = -45.06683418071994, lng = 168.53652809552435
) %>%
mutate(grade = factor(grade, levels=c('Easy','Medium','Difficult'))) %>%
mutate(colour = case_when(
grade == 'Easy' ~ 'green',
grade == 'Medium' ~ 'blue',
grade == 'Difficult' ~ 'red'
)) %>%
mutate(popup = makePopup(name,length,lat,lng))
trails %>%
leaflet() %>%
addTiles() %>%
addCircleMarkers(
color = trails$colour,
popup = trails$popup
) %>%
addLegend(labels = levels(trails$grade), colors = c("green", "blue", "red"))