Je travaille sur une carte Web avec R, en utilisant Leaflet et Shiny. La carte a un absolutePanel dans le coin supérieur droit, et je voudrais positionner la légende de sorte que ce ne soit pas tout le chemin dans le coin droit, mais à gauche du absolutePanel.Création de légende avec position absolue personnalisée dans Leaflet dans R Shiny
La feuille n'accepte que l'un des quatre coins comme entrée valide pour l'attribut "position" dans la balise addLegend. J'ai précédemment ajouté des balises css personnalisées à l'en-tête de la page d'interface utilisateur, et j'ai exploré la documentation css pour le formatage de la légende, mais je suis incapable de trouver le bon script pour remplacer la position de légende créée par Leaflet . Pour autant que je sache, la position est définie quelque part dans le script .leaflet .legend
.
Je préférerais résoudre cela dans le script R, plutôt que d'avoir à modifier les documents Web produits par celui-ci. Je n'ai pas encore vu ce problème ailleurs. Quelqu'un peut-il mieux connaître les css et brillant que je cuisine une solution pour cela? Merci d'avance.
simplifiée, un script reproductible de l'échantillon, avec une (mauvaise) tentative d'attribution d'une position absolue à la légende:
library(shiny)
library(leaflet)
data = data.frame(x = c(1,2,3), y = c(1,2,3))
ui <- fluidPage(
tags$head(tags$style(
type = "text/css",
"#controlPanel {background-color: rgba(255,255,255,0.8);",
".leaflet .legend {
position = absolute;
top = 10px;
right = 100px;}"
)),
leafletOutput(outputId = "map", width="100%"),
absolutePanel(top = 10, right = 10, height = 100, id = "controlPanel",
strong("Put Legend To the Left of Me"))
)
server <- function(session, input, output) {
output$map <- renderLeaflet({
leaflet() %>%
addMarkers(data = data, lat = data$x, lng = data$y) %>%
addLegend(colors = data$x, labels = data$y, title = "Legend")
})
}
shinyApp(ui, server)
Fantastique, c'est ce que je cherchais. Je vous remercie. Y a-t-il des problèmes potentiels soulevés par l'ajustement des marges (par rapport à la façon dont les choses apparaissent sur la carte)? En essayant cela, il semblerait que tout le reste apparaisse tel qu'il était avant. – BGroza
@BGroza Les panneaux de légende semblent être assez indépendants. Donc tout le reste sera le même. Si vous êtes curieux, essayez des valeurs extrêmes et voyez si des problèmes surviennent. –