传单 renderLeaflet 不能在闪亮的工作
leaflet renderLeaflet not working in shiny
我正在使用传单包绘制地图并在地块上绘制纬度和经度。
我在 R 中进行以下操作。
m <- leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=df_final$order_long, lat=df_final$order_lat)
m
它在 R 控制台中工作得很好。但是当我在 shiny 中使用它时它不起作用
这是我的 ui.r
代码片段
tabPanel("Order Locations", leafletOutput("map", width = "80%", height =
"80%"))
这是server.r
代码片段
output$map<- renderLeaflet({
dataset<-dataUpload()
leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=dataset$order_long,lat=dataset$order_lat)
})
它没有显示任何内容。我哪里错了。请帮忙
这很有效,我让它尽可能接近你的。它显然不喜欢百分比高度:
library(shiny)
library(leaflet)
r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()
ui <- fluidPage(
actionButton("recalc", "New points"),
mainPanel(
tabsetPanel(
tabPanel("Order Locations", leafletOutput("map",width="80%",height="400px")),
tabPanel("Markers", verbatimTextOutput("markers"))
)
)
)
if (!file.exists("df_final.csv")){
nmark <- 50
hv <- 80
df_final <- data.frame(order_long=runif(nmark,-hv,hv),
order_lat=runif(nmark,-hv,hv))
write.csv(df_final,"df_final.csv",row.names=F)
}
server <- function(input, output, session) {
dataUpload <- reactiveFileReader(1000, session, 'df_final.csv', read.csv)
output$map <- renderLeaflet({
leaflet() %>%
addTiles() %>%
addMarkers(lng=dataUpload()$order_long,lat=dataUpload()$order_lat)
})
output$markers <- renderPrint({print(dataUpload())})
}
shinyApp(ui, server)
产量:
成功了。 ui.r
文件有问题。
这是修改后的代码
tabPanel("Order Locations", leafletOutput("map"))
摆脱了宽度和高度参数,它可以使用默认设置。
派对有点晚了,但您可以添加自己的 CSS 来控制传单的美观,通常在 www
文件夹中,例如www/styles.css
,它具有响应 window 大小变化的额外好处。
/* styles.css */
div.outer {
position: fixed;
top: 45px; /* set to fit nicely with Shinydashboard's dashboardHeader(), adjust according to your own preferences. */
left: 0;
right: 0;
bottom: 0;
overflow-y: auto;
padding: 0;
}
并在 ui
中的 div()
中添加此 class:
ui <- fluidPage(
actionButton("recalc", "New points"),
mainPanel(
tabsetPanel(
tabPanel("Order Locations",
div(
class = "outer",
tags$head(
includeCSS("www/styles.css")
),
leafletOutput("map",width="100%",height="100%")
)
),
tabPanel("Markers", verbatimTextOutput("markers"))
)
)
)
结果:
我正在使用传单包绘制地图并在地块上绘制纬度和经度。 我在 R 中进行以下操作。
m <- leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=df_final$order_long, lat=df_final$order_lat)
m
它在 R 控制台中工作得很好。但是当我在 shiny 中使用它时它不起作用
这是我的 ui.r
代码片段
tabPanel("Order Locations", leafletOutput("map", width = "80%", height =
"80%"))
这是server.r
代码片段
output$map<- renderLeaflet({
dataset<-dataUpload()
leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=dataset$order_long,lat=dataset$order_lat)
})
它没有显示任何内容。我哪里错了。请帮忙
这很有效,我让它尽可能接近你的。它显然不喜欢百分比高度:
library(shiny)
library(leaflet)
r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()
ui <- fluidPage(
actionButton("recalc", "New points"),
mainPanel(
tabsetPanel(
tabPanel("Order Locations", leafletOutput("map",width="80%",height="400px")),
tabPanel("Markers", verbatimTextOutput("markers"))
)
)
)
if (!file.exists("df_final.csv")){
nmark <- 50
hv <- 80
df_final <- data.frame(order_long=runif(nmark,-hv,hv),
order_lat=runif(nmark,-hv,hv))
write.csv(df_final,"df_final.csv",row.names=F)
}
server <- function(input, output, session) {
dataUpload <- reactiveFileReader(1000, session, 'df_final.csv', read.csv)
output$map <- renderLeaflet({
leaflet() %>%
addTiles() %>%
addMarkers(lng=dataUpload()$order_long,lat=dataUpload()$order_lat)
})
output$markers <- renderPrint({print(dataUpload())})
}
shinyApp(ui, server)
产量:
成功了。 ui.r
文件有问题。
这是修改后的代码
tabPanel("Order Locations", leafletOutput("map"))
摆脱了宽度和高度参数,它可以使用默认设置。
派对有点晚了,但您可以添加自己的 CSS 来控制传单的美观,通常在 www
文件夹中,例如www/styles.css
,它具有响应 window 大小变化的额外好处。
/* styles.css */
div.outer {
position: fixed;
top: 45px; /* set to fit nicely with Shinydashboard's dashboardHeader(), adjust according to your own preferences. */
left: 0;
right: 0;
bottom: 0;
overflow-y: auto;
padding: 0;
}
并在 ui
中的 div()
中添加此 class:
ui <- fluidPage(
actionButton("recalc", "New points"),
mainPanel(
tabsetPanel(
tabPanel("Order Locations",
div(
class = "outer",
tags$head(
includeCSS("www/styles.css")
),
leafletOutput("map",width="100%",height="100%")
)
),
tabPanel("Markers", verbatimTextOutput("markers"))
)
)
)
结果: