gpt4 book ai didi

r - 在 r 中更好地控制传单弹出窗口

转载 作者:行者123 更新时间:2023-12-02 01:44:17 24 4
gpt4 key购买 nike

我正在尝试使用 leaflet 包更好地控制 R 中的 leaflet 弹出窗口。 MWE 的代码如下:

library(dplyr)
library(magrittr)
library(leaflet)

download.file(
url = "http://biogeo.ucdavis.edu/data/gadm2.8/rds/GBR_adm1.rds",
destfile = "GBR_adm1.rds",
method = "curl"
)

shp_gbr <- readRDS("GBR_adm1.rds")

# get centroids for placing popups in second map
shp_gbr_centers <-
rgeos::gCentroid(shp_gbr, byid = TRUE) %>%
sp::SpatialPointsDataFrame(shp_gbr@data, match.ID = FALSE)

shp_gbr@data %<>%
left_join(shp_gbr_centers[1], by = 'OBJECTID', copy = TRUE) %>%
rename(lat = y, lng = x) %>%
select(NAME_1, lat, lng) %>%
mutate(text = ProgGUIinR::LoremIpsum)

popup <- paste("<b><h3>", shp_gbr$NAME_1, "</h3></b>", shp_gbr$text)

shp_gbr %>%
leaflet() %>%
addPolygons(popup = ~popup)

这提供了一个漂亮的 map ,其中在 4 个国家/地区的区域内单击时会出现弹出窗口,但在这种情况下,弹出窗口无法很好地处理文本:

enter image description here

我想要的是通过 addPopups 函数访问一些可用的 popupOptions ,在本例中是为了使弹出窗口更宽并具有滚动条。下面是一个例子:

shp_gbr %>% 
leaflet() %>%
addPolygons() %>%
addPopups(
data = shp_gbr@data,
popup = ~popup,
options =
popupOptions(
maxWidth = 600,
maxHeight = 100
)
)

但是,弹出窗口现在设置为在启动时打开,而不是在边界内单击时显示,并且关闭后单击时不会重新打开:

enter image description here

我的问题是如何组合这些元素,以便您可以在 map 中使用滚动条来显示太多文本,例如第一个示例,其中弹出窗口默认关闭,但单击时打开。

最佳答案

您可以使用此函数来创建弹出窗口:

popup <- paste("<div class='leaflet-popup-scrolled' style='max-width:600px;max-height:100px'><b><h3>", shp_gbr$NAME_1, "</h3></b>", shp_gbr$text,"</div>")

它使用 leaflet-popup-scrolled 类将弹出窗口包装在 div 中,以添加滚动条和内联 CSS 以设置 max-width最大高度

关于r - 在 r 中更好地控制传单弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42310921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com