如何在闪亮的服务器上加快宣传单

Seb*_*Seb 6 r leaflet shiny

我已经在闪亮的地方设置了一个简单的传单地图,其中闪亮的server.R样子如下:

(请从Dropbox获取RDS数据以获得可重现的示例)

Server.R

test_polygons <- readRDS('test_polygons.RDS') # Sind die Polygon-Shapefiles transformiert auf WGS84 für Bezirke

#some merging....
#we use sample data instead

test_polygons@data$sample <- runif(nrow(test_polygons@data))

#Create some nice popups
world_popup <- function(modell){
  niveau <- test_polygons@data[, modell]

  probs  <- seq(0, 1, length.out = 5 +  1)
  niveau <- cut(niveau, breaks=quantile(niveau, probs, na.rm = TRUE, names = FALSE), labels=paste('level', 0:4), include.lowest = TRUE)
  niveau <- as.character(niveau)


  niveau <- factor(niveau, labels=)

  paste0("<strong>Bezirk: </strong>", 
         as.character(test_polygons@data$ID), 
         "<br><strong><br>", 
         "</strong>", 
         "<strong>Level: </strong>", 
         niveau
  )
}


  tiles <- "http://{s}.tile.stamen.com/toner-lite/{z}/{x}/{y}.png"
  attribution <- 'Map tiles by <a target="_blank" href="http://stamen.com">Stamen Design</a>, under <a target="_blank" href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Map data by <a target="_blank" href="http://www.naturalearthdata.com/">Natural Earth</a>.'



# produce the leaflet map ====
pal <-  colorQuantile("YlOrRd", NULL, n = 5)
      m.sample <- leaflet(data = test_polygons) %>%
      addTiles(urlTemplate = tiles,  
      attribution = attribution) %>%
      setView(13.782778,  47.61, zoom = 7) %>%
      addPolygons(fillColor = ~pal(test_polygons$sample), 
      fillOpacity = 0.8, 
      color = "#000000", 
      weight = 1, 
      popup = world_popup('sample'))

      # start the server part
      server <- function(input, output, session) {
        output$query <- renderText({
          as.character(parseQueryString(session$clientData$url_search))
        })

        output$mymap <- renderLeaflet({   
              m.sample
        })
      }      
Run Code Online (Sandbox Code Playgroud)

ui.R

用户界面非常简单:

require(leaflet)
require(shiny)

ui <- fluidPage(
  column(width=12,
  leafletOutput("mymap", height="200px")#, height="700px")
  )
)
Run Code Online (Sandbox Code Playgroud)

这在我的台式电脑上运行正常.但是,一旦我尝试在我的服务器上访问它,传单地图加载速度非常慢.特别是如果我将高度改为100%,它会完全停止加载.所以这是我的问题:

  • 如何加快加载过程.
  • 是否有可能提前加载一些零件,因为在这种情况下任何东西都是反应性的.
  • 我可以创建一个独立于闪亮的地图 - 可能这个加载速度更快.
  • 我的多边形可能有很多细节吗?

非常感谢您的帮助!

Seb*_*Seb 2

从简化 SP 对象的注释开始,成功了。我在 QGis 中导入了底层 shapefile 并通过以下方式进行了调整

 Vector => Geometry Tools => Simplify geometries
Run Code Online (Sandbox Code Playgroud)

现在工作速度更快了。更多信息可以通过以下方式找到:

Qgis-Stackexchange文档

感谢您的帮助!

  • 您可以使用“rgeos”包中的“gSimplify”在 R 中进行简化。 (3认同)