2017-01-16 15 views
1

リーフレットを使用して光沢のあるマップをプロットしようとしていますが、私は理解していないエラーが続いています。以下は再現可能な最小の例です。おかげで、事前にあなたの助け光沢のあるリーフレットを使用

library(shiny) 
library(leaflet) 
ui = fluidPage("test", id="nav", 
       leafletOutput("map", width="100%", height="100%") 
       ) 


server <- function(input, output,session) { 
    output$map <- renderLeaflet({ 
    print("Rendering leaflet map") 
    leaflet() %>% addProviderTiles("Esri.OceanBasemap") %>% 
    fitBounds(160, -30, 185, -50) 
    print("Finishing rendering leaflet map") 
    }) 
} 

shinyApp(ui, server); 

のために私は、このコンソールに出力を得る:

[1] "Rendering leaflet map" 
[1] "Finishing rendering leaflet map" 
Warning: Error in $: $ operator is invalid for atomic vectors 
Stack trace (innermost first): 
    80: origRenderFunc 
    79: output$map 
    4: <Anonymous> 
    3: do.call 
    2: print.shiny.appobj 
    1: <Promise> 

リーフレット機能は、光沢のある枠組みの外で、したがって、なぜ私は少し混乱していたときに動作するようです。

leaflet() %>% addProviderTiles("Esri.OceanBasemap") %>% 
    fitBounds(160, -30, 185, -50) 

答えて

2

ポイントのカップル

  • renderLeaflet()コールの最後の文が返されるものです。だから、あなたはprint文を持っている場合、それはリーフレットオブジェクト
  • 、返却されたものではありません私はあなたにも、あなたのUIおよびサーバー機能に巻き付けshinyUI()shinyServer()が必要だと思う -
  • 光沢v0.10のよう推奨されていませんheightは、権利を取得するトリッキーな引数である - あなたの迅速な対応のために、このthread

library(shiny) 
library(leaflet) 

ui <- fluidPage(
     leafletOutput(outputId = "map", width="100%") 
     ) 



server <- function(session, input, output) { 

    output$map <- renderLeaflet({ 
     leaflet() %>% addProviderTiles("Esri.OceanBasemap") %>% 
      fitBounds(160, -30, 185, -50) 
    }) 
} 

shinyApp(ui, server); 
+0

感謝を参照してください。あなたは私がこの光沢のあるリーフレットのビジネスに慣れていなくて、時には非常にイライラするデバッグを見つけることができます。乾杯。 –

+1

@ Cyrillm_44私はあなたの気持ちを知っていますが、私はまだ光沢のあるアプリの中のどこにでも 'print'ステートメントを持っています。 – SymbolixAU

+0

ShinyUIとshinyServerは、Shiny 0.10 – HubertL

関連する問題