2016-03-30 5 views
6

光沢のあるサーバー上のリーフレットをスピードアップする方法:光沢のある<code>server.R</code>はこのようになりますどこ私はピカピカに単にリーフレットマップを設定している

(再現性例えば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 

[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

UIながら

は非常に簡単です:これは私のデスクトップコンピュータ上で動作します大丈夫

require(leaflet) 
require(shiny) 

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

。しかし、サーバー上でアクセスしようとすると、チラシマップは非常にゆっくりと読み込まれます。特に高さを、例えば100%に変更すると、ロードがまったく停止します。そこで、私の質問は次のとおりです。

  • どのように読み込みプロセスをスピードアップしますか?
  • このような状況で反応するものがあるため、事前に一部を読み込むことは可能ですか?
  • 光沢とは独立したマップを作成することはできますか?これはおそらく高速です。
  • ポリゴンに多くの詳細がある可能性はありますか?

ありがとうございました!

+1

私は、ポリゴンがウェブアプリケーションにとって巨大だと思います。最初にポリゴンを単純化して、それが改善するかどうかを確認してください。 –

+1

リーフレットで構築されたmapviewを見ることはできますが、大きなデータセットでは速くなります(私は大規模なデータセットでjsを使うと思います) – MLavoie

答えて

2

SP-Objectを簡略化するコメントから始めると、そのトリックが行われました。 QGisで基本シェイプファイルをインポートして調整しました。

Vector => Geometry Tools => Simplify geometries 

現在ははるかに高速です。詳細は

Qgis-StackexchangeまたはDocumentationで確認できます。

ありがとうございました!

+2

'rgeos'パッケージの' gSimplify'を使ってRを単純化できます。 – Spacedman

関連する問題