本地图标未加载,R传单中的图像为空

时间:2019-02-13 21:03:37

标签: r leaflet rstudio r-leaflet

我无法使用addControl显示到本地图像的链接。

起初,我认为我的问题与以下问题相同:Icons not loading (empty image) in R Leaflet with Shiny。但是,我注意到,当我尝试重现该示例时,遇到了一些问题。

我认为这些问题是相关的:

  • R的Leaflet无法为https添加标记(仅限R Studio)
  • 指定相对或绝对本地路径时,R Studio中的传单无法链接到图像
  • 当本地路径时,R GUI中的传单无法链接到图像 已指定

我很惊讶某些事情在R GUI而不是R Studio中起作用。在将对象渲染为HTML之后检查它们之后,我发现图像被转换为​​64位对象。我认为问题在于makeIcon使用的是getFromNamespace(".b64EncodeFile", "markdown"),并且当添加链接到相对路径的HTML控件时,没有协议,因此不会转换对象。

这是我的可复制示例:

library(leaflet)
data(quakes)
quakes <- quakes[1:10,]
leafIcons <- icons(
    iconUrl = ifelse(quakes$mag < 4.6,
                     "https://leafletjs.com/examples/custom-icons/leaf-green.png",
                     "https://leafletjs.com/examples/custom-icons/leaf-red.png"),
    iconWidth = 38, iconHeight = 95,
    iconAnchorX = 22, iconAnchorY = 94)
html_legend <- "<img src='data/icons/1.png'>green<br/>
<img src='C:/FULL_ABSOLUTE_PATH/data/icons/2.png'>red"
leaflet(data = quakes) %>% addTiles() %>%
    addMarkers(~long, ~lat, icon = leafIcons) %>%
    addControl(html = html_legend, position = "bottomleft")

R GUI中渲染的图像 enter image description here

R Studio中的图像相同: enter image description here

您需要在本地复制这些文件:

1.pngPNG1

2.pngPNG2

0 个答案:

没有答案