準備
library(leaflet) # ライブラリの読み込み
library(ggmap)
library(dplyr)
library(knitr)
library(DT)
leaflet() %>%
addTiles(urlTemplate = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png") %>% # オープンストリートマップ
setView(lng = 140,lat = 36, zoom = 9) # 初期表示位置(省略可)
マーク用データの準備
df <- data.frame(
id = 1:50,
lng = rnorm(50, mean = 140, sd = 0.5),
lat = rnorm(50, mean = 36, sd = 0.5),
group = rep(c("groupA", "groupB"), 25),
pop = paste0("pop ", 1:50, "!"),
label = paste0("label ", 1:50, "!")
)
knitr::kable(head(df))
id | lng | lat | group | pop | label |
---|---|---|---|---|---|
1 | 139.9243 | 36.44596 | groupA | pop 1! | label 1! |
2 | 139.7237 | 35.62759 | groupB | pop 2! | label 2! |
3 | 139.9773 | 36.45864 | groupA | pop 3! | label 3! |
4 | 139.6034 | 36.44415 | groupB | pop 4! | label 4! |
5 | 139.0843 | 35.82925 | groupA | pop 5! | label 5! |
6 | 140.0365 | 35.83830 | groupB | pop 6! | label 6! |
# マーク用データの入力
base.map <- leaflet(df) %>%
addTiles(urlTemplate = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png")
base.map %>%
addMarkers(lng = ~lng, lat = ~lat,
popup = ~pop,
label = ~label)
base.map %>%
addCircles(lng = ~lng, lat = ~lat,
radius = 1000, #半径(メートル単位)
color = "#09f",
weight = 20) # 線幅
base.map %>%
addPopups(lng = ~lng, lat = ~lat,
popup = ~pop)
base.map %>%
addMarkers(lng = ~lng, lat = ~lat, popup = ~pop, group = "groupA",
data = filter(.data = df, group == "groupA")) %>%
addMarkers(lng = ~lng, lat = ~lat, popup = ~pop, group = "groupB",
data = filter(.data = df, group == "groupB")) %>%
addLayersControl(overlayGroups = c("groupA","groupB"),
options = layersControlOptions(collapsed = FALSE))
df <-read.csv("library.csv", stringsAsFactors = FALSE)
kable(head(df))
id | name | group | locate | url |
---|---|---|---|---|
1 | 杉並区立柿木図書館 | 図書館(地域) | 東京都杉並区上井草1-6-13 | https://www.library.city.suginami.tokyo.jp |
2 | 杉並区立今川図書館 | 図書館(地域) | 東京都杉並区今川4-12-10 | https://www.library.city.suginami.tokyo.jp |
3 | 杉並区立南荻窪図書館 | 図書館(地域) | 東京都杉並区南荻窪1-10-2 | https://www.library.city.suginami.tokyo.jp |
4 | 杉並区立高井戸図書館 | 図書館(地域) | 東京都杉並区高井戸東1-28-1 | https://www.library.city.suginami.tokyo.jp |
5 | 杉並区立宮前図書館 | 図書館(地域) | 東京都杉並区宮前5-5-27 | https://www.library.city.suginami.tokyo.jp |
6 | 杉並区立成田図書館 | 図書館(地域) | 東京都杉並区成田東3-28-5 | https://www.library.city.suginami.tokyo.jp |
lnla <- geocode(df$locate)
df$lng <- lnla$lon
df$lat <- lnla$lat
kable(head(df))
id | name | group | locate | url | lng | lat |
---|---|---|---|---|---|---|
1 | 杉並区立柿木図書館 | 図書館(地域) | 東京都杉並区上井草1-6-13 | https://www.library.city.suginami.tokyo.jp | 139.6121 | 35.72025 |
2 | 杉並区立今川図書館 | 図書館(地域) | 東京都杉並区今川4-12-10 | https://www.library.city.suginami.tokyo.jp | 139.5999 | 35.71557 |
3 | 杉並区立南荻窪図書館 | 図書館(地域) | 東京都杉並区南荻窪1-10-2 | https://www.library.city.suginami.tokyo.jp | NA | NA |
4 | 杉並区立高井戸図書館 | 図書館(地域) | 東京都杉並区高井戸東1-28-1 | https://www.library.city.suginami.tokyo.jp | NA | NA |
5 | 杉並区立宮前図書館 | 図書館(地域) | 東京都杉並区宮前5-5-27 | https://www.library.city.suginami.tokyo.jp | 139.5989 | 35.69322 |
6 | 杉並区立成田図書館 | 図書館(地域) | 東京都杉並区成田東3-28-5 | https://www.library.city.suginami.tokyo.jp | NA | NA |
df$pop <- paste0(df$name, '<br><a href = "', df$url, '"> link </a>')
group_list <- unique(df$group)
leaflet() %>%
addTiles(urlTemplate = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png") %>%
addMarkers(lng = ~lng, lat = ~lat, popup = ~pop, group = group_list[1],
data = filter(.data = df, group == group_list[1])) %>%
addMarkers(lng = ~lng, lat = ~lat, popup = ~pop, group = group_list[2],
data = filter(.data = df, group == group_list[2])) %>%
addMarkers(lng = ~lng, lat = ~lat, popup = ~pop, group = group_list[3],
data = filter(.data = df, group == group_list[3])) %>%
addLayersControl(overlayGroups = group_list,
options = layersControlOptions(collapsed = FALSE))
datatable(dplyr::select(df, name:url))
「データから価値を創造する」一般社団法人データマーケティングラボラトリー
Copyright© DML All Rights Reserved.