R闪亮还有一个类似的问题:Control the size of popupImage from leaflet in r shiny
但是我正在使用 flexdashboard 。我没有CSS的背景。如何调整尺寸?下面的示例代码:
library(leaflet)
library(mapview)
leaflet() %>%
addProviderTiles(providers$Esri.WorldStreetMap) %>%
addRectangles(
lng1 = bbox_north2$p1$long, lat1 = bbox_north2$p1$lat,
lng2 = bbox_north2$p2$long, lat2 = bbox_north2$p2$lat,
fillColor = "red", stroke = FALSE,
popup = popupImage(here::here("products", "north1.png"), width = 800, height = 600, embed = TRUE)
设置width = 800
时,弹出窗口显示较大,但其中一部分显示为灰色。
答案 0 :(得分:1)
免责声明:此处为mapview开发人员。
首先,请注意,mapview中的popup*()
函数已移至名为 leafpop 的轻量级程序包。尽管在CRAN上,但针对此问题,我们需要来自github的开发版本,可以在here中找到。 -在下面的示例中取消对remotes::install_githib()
调用的注释,以获取最新版本。
mapview弹出功能存在很多问题,这些问题导致我重写了大多数功能(包括popupImage()
)。重写引入了新的API设计,这是必需的,因为我们需要访问map
对象。因此,对于您眼前的问题,以下应该可以解决您的问题:
# remotes::install_github("r-spatial/leafpop")
library(leaflet)
library(leafpop)
img = "/path/to/some/image.png"
# does not work properly - image is clipped in y
leaflet() %>%
addTiles() %>%
addPolygons(data = franconia[1, ], popup = popupImage(img, width = 400))
# works
leaflet() %>%
addTiles() %>%
addPolygons(data = franconia[1, ], group = "fran") %>%
addPopupImages(image = img, group = "fran", width = 400)
基本上,您首先使用各自的leaflet::add*()
函数创建(数据)层(在addPolygons()
以上的示例中),然后使用addPopupImges()
标识该层将图像注册为弹出窗口group
参数。这应该可以让您设置所需的宽度和高度(尽管我认为maxwidth值为2000像素)。