2016-03-30 23 views
6

tôi đã thiết lập một bản đồ đơn giản là tờ rơi trong bóng nơi bóng server.R trông như thế này:Làm thế nào để tăng tốc độ tờ rơi trên máy chủ sáng bóng

(xin vui lòng liên RDS-Dữ liệu từ Dropbox cho một ví dụ tái sản xuất)

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 

[email protected]$sample <- runif(nrow([email protected])) 

#Create some nice popups 
world_popup <- function(modell){ 
    niveau <- [email protected][, 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([email protected]$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 
     }) 
     }  

ui.R

Mặc dù giao diện người dùng khá đơn giản:

require(leaflet) 
require(shiny) 

ui <- fluidPage(
    column(width=12, 
    leafletOutput("mymap", height="200px")#, height="700px") 
) 
) 

Điều này hoạt động tốt trên máy tính để bàn của tôi. Tuy nhiên, ngay sau khi tôi cố truy cập nó trên máy chủ của tôi, bản đồ tờ rơi tải rất chậm. Đặc biệt là nếu tôi thay đổi chiều cao, nói, 100% nó dừng tải ở tất cả. Vì vậy, đây là câu hỏi của tôi:

  • Làm cách nào để tăng tốc quá trình tải.
  • Có thể tải một số bộ phận trước vì bất kỳ điều gì có phản ứng trong ngữ cảnh này hay không.
  • Tôi có thể tạo bản đồ độc lập với sáng bóng - có lẽ bản đồ này đang tải nhanh hơn.
  • Có thể các đa giác của tôi có nhiều chi tiết không?

Cảm ơn bạn rất nhiều vì đã giúp đỡ!

+1

Tôi nghĩ đa giác rất lớn đối với ứng dụng web. Hãy thử đơn giản hóa đa giác trước và xem nó có cải thiện hay không. –

+1

bạn có thể xem mapview, được xây dựng trên tờ rơi, nhưng nhanh hơn với tập dữ liệu lớn (tôi nghĩ họ sử dụng js với bộ dữ liệu lớn hơn) – MLavoie

Trả lời

2

Bắt đầu từ các nhận xét đơn giản hóa SP-Object đã thực hiện thủ thuật. Tôi đã nhập shapefile cơ bản trong QGis và điều chỉnh nó bằng

Vector => Geometry Tools => Simplify geometries 

Hoạt động nhanh hơn bây giờ. Bạn có thể tìm thêm thông tin qua:

Qgis-Stackexchange hoặc Documentation.

Cảm ơn sự giúp đỡ của bạn!

+2

bạn có thể đơn giản hóa trong R bằng cách sử dụng 'gSimplify' trong gói' rgeos'. – Spacedman

Các vấn đề liên quan