[問題] leafletProxy在網頁端執行問題

看板R_Language作者 (混沌的大氣)時間8年前 (2017/03/01 16:49), 8年前編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
[問題類型]: 程式除錯 [軟體熟悉度]: 使用者(已經有用R 做過不少作品) [問題敘述]: 這個程式是使用Leaflet套件繪製地圖 並用leafletProxy方式配合addMarkers加上資料點位 程式在本機跟伺服器的R Studio都可以正常繪出資料點 但如果從網頁端連至該網頁,可以正常顯示地圖,但leafletProxy內的指令卻沒有讀到 導致資料點位無法顯示出來 瀏覽器的console訊息表示找不到地圖ID (Couldn't find map with id mainmap) 但我確定leafletProxy指定的地圖ID是正確,不知是哪邊出了問題 麻煩先進們指點,謝謝! [程式範例]: #### ui.r #### library(shiny) library(shinydashboard) library(leaflet) sidebar = div( sidebarMenu( menuItem("主頁", tabName = "Main", icon = icon("desktop")) )) body = div( tabItems( tabItem(tabName = "Main", fluidRow(column(width = 12, leafletOutput("mainmap", height = "900px") ))))) header = dashboardHeader(title = "TEST") body = dashboardPage(header, dashboardSidebar(sidebar), dashboardBody(body)) #### server.r #### shinyServer(function(input, output) { output$mainmap = renderLeaflet({ map = leaflet() %>% setView(121, 23.5, 7) %>% addTiles() return(map) }) observe({ leafletProxy("mainmap") %>% addMarkers(lng = 120, lat = 25) }) }) ## 實際程序是讀入一個dataframe畫圖,但測試發現連單純點位都無法顯示 [環境敘述]: (伺服器R-studio) R version 3.2.2 (2015-08-14) Platform: x86_64-redhat-linux-gnu (64-bit) Running under: Amazon Linux AMI 2016.03 [關鍵字]: shiny-server, leaflet -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.69.237 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1488358163.A.DCC.html

03/02 01:25, , 1F
code cannot run:Error in tagAssert: Expected tag..
03/02 01:25, 1F

03/02 01:27, , 2F
初步看leafletProxy部分應該是可以..但不能run也沒法繼續
03/02 01:27, 2F

03/02 01:28, , 3F
另外你有用到library應該要貼雖然我知道shinydashboard
03/02 01:28, 3F
不好意思 程式碼已經修正 主要的疑問在於從本機或server的R-studio採Run App都可以正常跑 但上傳到shiny-server後 如果從瀏覽器輸入網址連到該APP 就會有leafletProxy()內的指令讀不到的情況 ※ 編輯: tytony (118.163.69.237), 03/02/2017 09:02:41

03/02 12:16, , 4F
在ubuntu run your code ok不會有錯..單看code也覺沒問題
03/02 12:16, 4F

03/02 14:00, , 5F
感謝C大,那我再試看看 不然就只能換方式來寫了
03/02 14:00, 5F

03/02 16:14, , 6F
找到問題了 server端的Leaflet版本太舊 更新後就正常了
03/02 16:14, 6F
文章代碼(AID): #1OjeiJtC (R_Language)
文章代碼(AID): #1OjeiJtC (R_Language)