В приведенном ниже коде вы найдете две одинаковые строки:
map("world", fill = TRUE, col = "gray36", bg = "white", xlim = input$lon_slider, ylim = input$lat_slider)
Я включил в приложение два графика. Один с этой командой дважды, только один раз. Теперь, если вы ограничите диапазон долготы от -180 до 0, вы увидите график, по-прежнему содержащий всю Антарктику.
Я поэкспериментировал с этим в отдельном скрипте (без блестящего) и заметил, что при обновлении карты требуется либо выполнить dev.off (), либо дважды выполнить функцию построения. Интересно, откуда это поведение, и если есть более хорошее решение для моей проблемы, тогда повторите выполнение комнада.
library(shiny)
library(maps)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
sliderInput("lon_slider",
label = "Longitude",
min = -180,
max = 180,
value = c(-180, 180)),
sliderInput("lat_slider",
label = "Latitude",
min = -90,
max = 90,
value = c(-90, 90))),
mainPanel(plotOutput("map_plot"),
plotOutput("map_plot2"))
)
)
server <- function(input, output) {
# Creating map plot
output$map_plot <- renderPlot({
req(input$lon_slider)
req(input$lat_slider)
map("world", fill = TRUE, col = "gray36", bg = "white", xlim = input$lon_slider, ylim = input$lat_slider)
title(main = "Zoom by selecting a region on this plot.")
})
# Creating map plot
output$map_plot2 <- renderPlot({
req(input$lon_slider)
req(input$lat_slider)
map("world", fill = TRUE, col = "gray36", bg = "white", xlim = input$lon_slider, ylim = input$lat_slider)
map("world", fill = TRUE, col = "gray36", bg = "white", xlim = input$lon_slider, ylim = input$lat_slider)
title(main = "Zoom by selecting a region on this plot.")
})
}
shinyApp(ui, server)
Любая помощь очень ценится.