2016-10-26 22 views
0

私はtwo spatial plots side-by-side in shinyを持っているようにしていますが、私は強力な機能を提案しました。syncmapviewです。 display mapview object in shinyを計算した後、syncを 'shiny'に統合しようとしましたが、次のエラーが発生しました:スロット(x、 "map")のエラー:クラス "shiny.tag"のこのオブジェクトの名前 "map" .list "syncにマップオブジェクトがないことを意味しますか?syncまたはlatticeViewshinyと統合することはできませんか?もしそうなら、回避策があり、私の耳はすべて開いているはずです。これはShinyからのアクセスを持つ素晴らしい機能であり、興味深いことをいくつか行うことができます。何か提案をいただきありがとうございます。ここではサンプル再現可能なコードは次のとおりです。「同期」(地図表示)の光沢のある表示

library(shiny) 
library(mapview) 
ui <- fluidPage(
    mapviewOutput("samplemap"), 
    p() 
) 
server <- function(input, output, session) { 
    output$samplemap <- renderMapview({ 
     m1 <- mapview(gadmCHE,zcol="ID_1") 
     m2 <- mapview(gadmCHE,zcol="OBJECTID") 
     sync(m1,m2) 
     }) 
} 
shinyApp(ui, server) 

答えて

1

我々はsync htmlwidgetからの戻り値を作る議論してきました。現在、syncはリーフレットのhtmltools::tagListを返します。 shinytagsを挿入すると、mapviewを挿入するのと少し違います。私は以下のコードで説明しようとします。

library(mapview) 

m1 <- mapview(gadmCHE,zcol="ID_1") 
s1 <- sync(m1,m1) 


library(shiny) 

# if not dynamically adding maps 
# we can just insert as ui 

shinyApp(
    ui = s1, 
    server = function(input,output){} 
) 

# if there is a need to create the maps after UI 
# then we will need to handle differently 
# since sync gives us tags instead of an htmlwidget 
shinyApp(
    ui = uiOutput("syncmap"), 
    server = function(input,output){ 
    output$syncmap = renderUI({ 
     s1 
    }) 
    } 
) 
+0

「sync」返されたオブジェクトに関するディスカッションパートがないことをお詫びします。
これは便利ですが、マップは 'sync'オブジェクトが' ui'として挿入されたときにのみ表示されていました。マップを動的に追加することはできません。つまり、 'renderUI'と' uiOutput'を含むコードはウィンドウを開きましたが、マップはありません。理由は分かりませんか?また、 'render'''オブジェクトと' 'renderUI''と' 'uiOutput''で使用する' 'render''オブジェクトを使って反応式で' 'sync''オブジェクトを作成できるかどうかを知りたいですか?あなたの提案に心から感謝します。 – SatishR

+0

'shiny'、' htmltools'、 'htmlwidgets'のどのバージョンがありますか? – timelyportfolio

+0

ここにあります: 'shiny' _0.14.1_' htmltools' _0.3.5_ 'htmlwidgets' _0.7_ – SatishR

関連する問題