2017-01-23 1 views
0

Die vorliegende Aufgabe ist einfach - Ich möchte den CSS-Stil meiner Leaflet-Popups in einer Shiny-App anpassen können. Ich habe versucht, Lösungen von this und this Beispiel ohne Erfolg zu kombinieren.So erstellen Sie einen benutzerdefinierten Blättchen-Popup-Stil in Shiny/R

beide der oben verlinkten Lösungen verwenden, hier einige ist (nicht) Beispielcode:

library(shiny) 
library(leaflet) 

shinyApp(
    ui <- fluidPage(

     tags$head(includeCSS(system.file('www', 'style.css', package = 'myPackage'))), 

     leafletOutput("map", width = "100%", height = "800") 
    ), #END UI 


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

    output$map <- renderLeaflet({ 
     leaflet() %>% 
     addTiles() %>% 
     addCircles(lng = -80, lat = 30, radius = 100, popup = as.character("Test")) 
    }) #END RENDERLEAFLET 
    } 
) 

Die style.css Datei sieht wie folgt aus und ist in der www Ordner in meinem Shiny App-Verzeichnis gespeichert:

<style> 

.custom-popup .leaflet-popup-content-wrapper { 
    background: #DB0925; 
    color:#fff; 
    font-size:16px; 
    line-height:24px; 
    } 
.custom-popup .leaflet-popup-content-wrapper a { 
    color:rgba(255,255,255,0.5); 
    } 
.custom-popup .leaflet-popup-tip-container { 
    width:30px; 
    height:15px; 
    } 
.custom-popup .leaflet-popup-tip { 
    border-left:15px solid transparent; 
    border-right:15px solid transparent; 
    border-top:15px solid #2c3e50; 
    } 
</style> 

<div class='custom-popup' id='map'></div> 

Ich vermute, dass der Pfad zu meiner CSS-Datei das Problem ist. Wenn ich diesen Code so laufe, erhalte ich den folgenden Fehler:

Warning in file(con, "r") : file("") only supports open = "w+" and open = "w+b": using the former

Irgendwelche Lösungen wie man das zur Arbeit bringt?

+1

Sie verweisen auf Ihre CSS falsch. Sehen Sie sich hier an: https://shiny.rstudio.com/articles/css.html Wenn Sie einfach das Tag $ head für 'theme =" style.css "' ändern, wird es funktionieren –

Antwort

1

Icaro Bombonato führte mich zur Lösung! Anstelle von tags$head(includeCSS(system.file('www', 'style.css', package = 'myPackage'))), war alles, was notwendig war, includeCSS("style.css") in der Benutzeroberfläche. Die Datei style.css wurde auch in meinem Shiny-Hauptverzeichnis und nicht im www-Ordner gespeichert.

Verwandte Themen