如何在 r 中的传单地图中的弹出窗口中显示多个文本
how to show multiple texts on pop-up in leaflet map in r
我使用 r 中的传单包制作了一个交互式地图。我创建了一个示例数据集,如下所示。有两个城市,伦敦和伯明翰。 3 条来自伦敦的推文和 2 条来自伯明翰的推文。我想要做的是点击地图上的标记以显示该位置的所有推文。但是,我只能显示从该位置点击弹出窗口的第一条推文。
我要显示的是点击位置的所有推文。理想情况下类似于 table 或只是推文列表。这只是我编造的数据集。我的真实数据集有很多城市,其中一些有超过 10 条推文。有谁知道如何实现这一目标?非常感谢您的帮助。
我的代码如下:
library(leaflet)
library(dplyr)
data_map = data.frame(lat=c(51.50735, 51.50735, 51.50735,52.48624,52.48624),
lon=c(-0.1277583,-0.1277583,-0.1277583,-1.8904010,-1.8904010),
n = c(3,3,3,2,2),
location = c('London', 'London', 'London', 'Birmingham', 'Birmingham'),
tweet = c('Great', 'I love this', 'like it', 'hate it', 'worst ever'))
m = leaflet(data_map) %>%
setView(lng = -1.470085 , lat=53.38113,zoom=5) %>%
addTiles() %>%
#addProviderTiles(providers$Stamen.Toner) %>%
addCircleMarkers(
lng = ~lon,
lat = ~lat,
#popup = ~Location,
#size=3,
radius = ~n*3,
stroke = T,
fillOpacity = 0.5,
popup=paste(
"Address:", data_map$location, "<br>",
"number of tweets:", df_map$n, "<br>",
"Posts:", data_map$tweet)
)
print(m)
您可以将每个位置的数据减少到一行,并将每个位置的所有推文保存在 list-column。
library(leaflet)
library(dplyr)
data_map = data.frame(lat=c(51.50735, 52.48624),
lon=c(-0.1277583,-1.8904010),
n = c(3,2),
location = c('London', 'Birmingham'))
data_map$tweets <- list(c('Great', 'I love this', 'like it'), c('hate it', 'worst ever'))
m = leaflet(data_map) %>%
setView(lng = -1.470085 , lat=53.38113,zoom=5) %>%
addTiles() %>%
#addProviderTiles(providers$Stamen.Toner) %>%
addCircleMarkers(
lng = ~lon,
lat = ~lat,
#popup = ~Location,
#size=3,
radius = ~n*3,
stroke = T,
fillOpacity = 0.5,
popup= ~paste(
"<strong> Address: </strong>", location, "<br>",
"<strong> number of tweets: </strong>", n, "<br>",
"<strong> Posts: </strong>", "<br>", lapply(tweets, paste, collapse = "<br>")
))
m
我使用 r 中的传单包制作了一个交互式地图。我创建了一个示例数据集,如下所示。有两个城市,伦敦和伯明翰。 3 条来自伦敦的推文和 2 条来自伯明翰的推文。我想要做的是点击地图上的标记以显示该位置的所有推文。但是,我只能显示从该位置点击弹出窗口的第一条推文。
我要显示的是点击位置的所有推文。理想情况下类似于 table 或只是推文列表。这只是我编造的数据集。我的真实数据集有很多城市,其中一些有超过 10 条推文。有谁知道如何实现这一目标?非常感谢您的帮助。
我的代码如下:
library(leaflet)
library(dplyr)
data_map = data.frame(lat=c(51.50735, 51.50735, 51.50735,52.48624,52.48624),
lon=c(-0.1277583,-0.1277583,-0.1277583,-1.8904010,-1.8904010),
n = c(3,3,3,2,2),
location = c('London', 'London', 'London', 'Birmingham', 'Birmingham'),
tweet = c('Great', 'I love this', 'like it', 'hate it', 'worst ever'))
m = leaflet(data_map) %>%
setView(lng = -1.470085 , lat=53.38113,zoom=5) %>%
addTiles() %>%
#addProviderTiles(providers$Stamen.Toner) %>%
addCircleMarkers(
lng = ~lon,
lat = ~lat,
#popup = ~Location,
#size=3,
radius = ~n*3,
stroke = T,
fillOpacity = 0.5,
popup=paste(
"Address:", data_map$location, "<br>",
"number of tweets:", df_map$n, "<br>",
"Posts:", data_map$tweet)
)
print(m)
您可以将每个位置的数据减少到一行,并将每个位置的所有推文保存在 list-column。
library(leaflet)
library(dplyr)
data_map = data.frame(lat=c(51.50735, 52.48624),
lon=c(-0.1277583,-1.8904010),
n = c(3,2),
location = c('London', 'Birmingham'))
data_map$tweets <- list(c('Great', 'I love this', 'like it'), c('hate it', 'worst ever'))
m = leaflet(data_map) %>%
setView(lng = -1.470085 , lat=53.38113,zoom=5) %>%
addTiles() %>%
#addProviderTiles(providers$Stamen.Toner) %>%
addCircleMarkers(
lng = ~lon,
lat = ~lat,
#popup = ~Location,
#size=3,
radius = ~n*3,
stroke = T,
fillOpacity = 0.5,
popup= ~paste(
"<strong> Address: </strong>", location, "<br>",
"<strong> number of tweets: </strong>", n, "<br>",
"<strong> Posts: </strong>", "<br>", lapply(tweets, paste, collapse = "<br>")
))
m