Есть ли способ улучшить скорость рендеринга / качество сопоставления больших наборов данных с блестящим приложением?
Мы надеялись использовать блестящий для создания приложения, которое показывало бы местоположение некоторых наших собранных данных, однако мы находим, что это может быть неосуществимо. Наш полный набор дат близок к 1 миллиону строк, и мы обнаруживаем, что чем длиннее таблица, тем сложнее использовать карту. До сих пор мы использовали пакет листовки для отображения, и наш набор дат импортируется в виде файла .RData. Ищите советы по альтернативным библиотекам или методам кодирования, которые могут поставить под угрозу повышение скорости и качества.
Ниже приведен пример с некоторыми случайными выборочными данными, чтобы показать проблему, с которой мы столкнулись.
################################################################################################
################################################################################################
# Sec 1a. Needed Libaries & Input Files
# Libaries
library(shiny) # How we create the app.
library(shinycssloaders) # Adds spinner icon to loading outputs.
library(shinydashboard) # The layout used for the ui page.
library(leaflet) # Map making. Leaflet is more supported for shiny.
library(dplyr) # Used to filter data for plots.
FileIn <- data.frame(SiteID = 1:160000 , Longitude = rnorm(160000, mean=-105, sd=4), Latitude = rnorm(160000, mean=35, sd=4))
################################################################################################
################################################################################################
# Sec 2. The UI (HTML Page)
ui <- dashboardPage(
dashboardHeader(
title ="Sample point data"
), #enddashboardHeader
dashboardSidebar(
), #enddashboardSidebar
dashboardBody(
tabsetPanel(
tabPanel("Map", fluidRow(withSpinner(leafletOutput("mapA"))))
) #endtabsetPanel
) #enddashboardBody
) #end dashboardPage
################################################################################################
################################################################################################
# Sec 3. The Server (function)
server <- function(input, output, session) {
#### The Map ouput.
output$mapA <- renderLeaflet({
leaflet(data = FileIn) %>%
addTiles("Add Map Title Here") %>%
addProviderTiles("Esri.WorldImagery") %>%
addCircleMarkers(
lng = ~Longitude,
lat = ~Latitude,
radius = 1)
})
} #endServer
################################################################################################
################################################################################################
# Sec 4. Run the application.
shinyApp(ui = ui, server = server)