【问题标题】:How to adjust the size of popup image in leaflet map in flexdashboard?如何在 flexdashboard 的传单地图中调整弹出图像的大小?
【发布时间】:2019-07-10 22:52:39
【问题描述】:

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 时,弹出窗口显示较大,但其中一部分显示为灰色。

【问题讨论】:

    标签: r leaflet r-mapview


    【解决方案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 像素)。

    【讨论】:

    猜你喜欢
    • 2014-08-16
    • 2014-06-09
    • 2016-05-10
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    相关资源
    最近更新 更多