R闪亮:自定义图标不会呈现

时间:2018-08-06 20:53:30

标签: r shiny leaflet shinydashboard

我正在为移动设备上的“我的闪亮”应用程序自定义图标(在桌面上正常工作)苦苦挣扎。我已经阅读了此主题,但并没有帮助我设法查看适当的图标:R Shiny: publishing leaflet maps with custom icons

如果我使用默认图标,则一切正常,它可以正确打印。 我将图标保留在应用程序目录内的www文件夹中。这是否意味着自定义图标不起作用?

如果我将图标用作链接或应用目录中的图像,则无法在移动设备上使用(在台式机上可以)

负责打印的代码如下(这些只是代码的一部分,它不可复制,但是这些部分应该足以判断我是否做错了事)

ui <- dashboardPage(
  dashboardHeader(title  = "Location Tracker", titleWidth = "270px"),
  dashboardSidebar(width = "270px"),
  dashboardBody(leafletOutput("mymap", width = "auto", height = "560px"))
)


server <- shinyServer(function(input, output, session) {

# some other code

output$mymap <- renderLeaflet({
      leaflet <- leaflet() %>%
      addTiles() %>%
    return(leaflet)
  })


iconize <- function(icon_file_name, x_size, y_size){
      icon <- iconList(
      ship = makeIcon(icon_file_name, x_size, y_size)
    )
  }

  home_icon <- iconize("https://lh5.googleusercontent.com/IoAku0AlWU1-9KBAccr8n0QI01K8egDndIKbEZSIh2uUIjQd_WUPKUCQMUeorSAW_sPB4BRHKuiTmm8vub68=w1410-h916", 25, 25) 
  tram_icon <- iconize("www/tram_icon.png", 35, 35)
  bus_icon <- iconize("www/bus_icon.png", 35, 35)

observeEvent(autoInvalidate(), {
    leafletProxy("mymap") %>%
      clearMarkers() %>%
      addMarkers(
        data = tram_points(),
        label = tram_labels(),
        icon = tram_icon
        )
  },ignoreNULL = FALSE)
})

1 个答案:

答案 0 :(得分:0)

最后几天后,我想出了一个解决方案。也就是说,我使用了Font Awesome Icons(字体真棒图标),并且一切正常。

下面的一些代码:

icon.home <- makeAwesomeIcon(icon = 'home', library = "fa", markerColor = "green")

observeEvent(autoInvalidate(), {
    leafletProxy("mymap") %>%
      clearMarkers() %>%
      addAwesomeMarkers(
        lng = tram_points()$Lon,
        lat = tram_points()$Lat,
        icon = icon.home
      )})