我正在使用Leaflet和Shiny在R的webmap上工作。该地图在右上角有一个绝对面板,我想定位图例,以便它不是完全位于右上角,而是位于absolutePanel的左侧。用R内的自定义绝对位置在Leaflet中创建图例Shiny
小册子只接受四个角中的一个作为addLegend标记中“position”属性的有效输入。我以前在UI页面的标题中添加了自定义css标签,并且我一直在探索用于格式化图例的css文档,但是我无法提供正确的脚本来实际覆盖由Leaflet创建的图例位置。据我所知,该位置设置在.leaflet .legend
脚本的某处。
我希望在R脚本中解决这个问题,而不是修改它生成的Web文档。还没有看到这个问题在其他地方解决。任何人都可以更好地熟悉css和闪亮,而不是为我制作一个解决方案吗?提前致谢。
一个简化的,可重复的示例脚本,与分配的绝对位置传说一个(不正确)尝试:
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)
太棒了,那就是我一直在寻找的东西。谢谢。是否有任何潜在问题通过调整边际(关于事情在地图上的显示方式)?尝试一下,它看起来像其他所有东西都像以前一样出现。 – BGroza
@Broza传奇面板似乎相当独立。所以其他一切都是一样的。如果你有好奇心,试试一些极端的价值观,看看是否会出现一些问题。 –