自定义图标不渲染

问题描述 投票:0回答:1

我正在为移动设备上的闪亮应用程序自定义图标而苦苦挣扎(在桌面上它可以正常工作)。我已阅读此主题,但它并没有帮助我管理查看正确的图标:R Shiny:使用自定义图标发布传单地图

如果我使用默认图标,一切正常,打印正确。 我将图标保存在应用程序目录内的 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)
})
r shiny r-leaflet
1个回答
1
投票

几天后我终于想出了一个解决方案。也就是说,我使用了 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
      )})
© www.soinside.com 2019 - 2024. All rights reserved.