2017-03-27 14 views
0

私は、すばらしいマーカーに入るフォントの恐ろしいアイコンを選択できるようにするShiny Appを作っています。シャイニーのリーフレットマップの利用可能なすべてのフォントを一覧表示する

ここでは、ユーザーがマーカーの色、アイコンの色、アイコン(名前)を選択できる簡単なアプリを紹介します。

library(shiny) 
library(leaflet) 

icon_names <- c("home", "map-pin") 

marker_colours <- list(Standard = c('red', 'orange', 'beige', 'green', 'blue', 'purple', 
            'pink', 'cadetblue', 'white', 'grey', 'black'), 
         Shades = c('darkred', 'lightred', 'darkgreen', 'lightgreen', 
            'darkblue', 'lightblue', 'darkpurple', 'lightgray')) 


server <- function(input, output) { 

    output$map <- renderLeaflet({ 

    icons <- awesomeIcons(
     icon  = input$icon, 
     iconColor = input$icon_colour, 
     library  = 'fa', 
     markerColor = input$marker_colour 
    ) 

    leaflet() %>% 
     addTiles() %>% 
     addAwesomeMarkers(lng   = 4.9, 
         lat   = 52.38, 
         icon   = icons 
    ) 
    }) 
} 

ui <- fluidPage(
    sidebarLayout(
    sidebarPanel(
     selectInput("icon", "Icon:", 
        choices = icon_names, selected = "home"), 
     selectInput("marker_colour", "Marker colour:", 
        choices = marker_colours, selected = "red"), 
     selectInput("icon_colour", "Icon colour:", 
        choices = c("#ffffff", "#000000"), selected = "#ffffff") 
    ), 
    mainPanel(leafletOutput("map")) 
) 
) 

shinyApp(ui = ui, server = server) 

しかし今、私は、Rパッケージリーフレットで利用可能なすべてのFAアイコンにアクセスする必要があります。

だから、コード

icon_names <- c("home", "map-pin") 

のビットは、すべての利用可能なアイコンと文字列につながるものに変更する必要があります。

あなたのアドバイスは大歓迎です!

ベスト、 ジッドゥ

答えて

1

私はリーフレットパッケージから情報を収集する方法を見つけました。

リーフレットパッケージのfont-awesome.min.cssというファイルを見つけることができます。そこに情報を抽出することができます。

file_text <- readr::read_file(
    paste0(.libPaths()[1], 
    "/leaflet/htmlwidgets/plugins/Leaflet.awesome-markers/font-awesome.min.css") 
) 

アイコン名は「fa-」と「:」の間に集められます。

icon_names <- stringr::str_extract_all(file_text, "(fa-)([^:]+)")[[1]] 

一目では、全体のCSSファイルを表示して見ることができるように最初の36個のエントリは、私が欲しいものではないことを示しています。

icon_names <- icon_names[-(1:36)] %>% 
    stringr::str_sub(4, -1) 

リーフレットパッケージの変更がこの影響を受ける可能性があると私は想定しています。私にとってそれはで動作します:

  • leaflet_1.1.0
  • stringr_1.2.0
  • readr_1.0.0
  • Rバージョン3.3.3(2017年3月6日)

ベスト、 ジドゥー

関連する問題