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)
<- function(lat, lng){
googleURL paste0(
'https://www.google.com/maps/search/?api=1&query=',
lat,'%2C',
lng
)
}
<- function(name, length, lat, lng) {
makePopup paste0(
'<a target="_blank" href=',
googleURL(lat,lng),
'>',
name,'</a><br>',
length, ' hours'
)
}
<- tibble(
trails 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(
== 'Easy' ~ 'green',
grade == 'Medium' ~ 'blue',
grade == 'Difficult' ~ 'red'
grade %>%
)) 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"))