我正在为移动设备上的闪亮应用程序自定义图标而苦苦挣扎(在桌面上它可以正常工作)。我已阅读此主题,但它并没有帮助我管理查看正确的图标: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)
})
几天后我终于想出了一个解决方案。也就是说,我使用了 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
)})