0

R shiny 这里有一个类似的问题: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时,弹出窗口显示较大,但其中一部分显示为灰色。

4

1 回答 1

1

免责声明:mapview 开发人员在这里。

首先,请注意,mapview 中的函数已移至名为leafpoppopup*()的更轻量级的包中。虽然在 CRAN 上,但对于这个问题,我们需要来自 github 的开发版本,可以在这里找到。- 取消注释以下示例中的调用以获取最新版本。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 像素)。

于 2019-07-10T14:52:39.233 回答