我正在使用传单包绘制地图并在图上绘制lat和long。 我在R中做跟随。
m <- leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=df_final$order_long, lat=df_final$order_lat)
m
它在R控制台中运行得非常好。但是当我在闪亮的时候使用它时它不起作用
这是我的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)
})
它不显示任何内容。我哪里弄错了。请帮忙
答案 0 :(得分:8)
这是有效的,我尽可能接近你的。它显然不喜欢百分比高度:
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)
产量:
答案 1 :(得分:2)
工作了。问题在于ui.r
文件。
这是修改后的代码
tabPanel("Order Locations", leafletOutput("map"))
摆脱宽度和高度参数,它使用默认设置。
答案 2 :(得分:1)
派对有点晚,但您可以添加自己的CSS来控制传单的美学,通常在www
文件夹中,例如www/styles.css
,它还具有响应窗口大小变化的额外好处。
/* 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;
}
并在div()
中的ui
中添加此课程:
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"))
)
)
)