作者tytony (混沌的大气)
看板R_Language
标题[问题] leafletProxy在网页端执行问题
时间Wed Mar 1 16:49:17 2017
[问题类型]:
程式除错
[软体熟悉度]:
使用者(已经有用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://webptt.com/cn.aspx?n=bbs/R_Language/M.1488358163.A.DCC.html
1F:→ cywhale: code cannot run:Error in tagAssert: Expected tag.. 03/02 01:25
2F:→ cywhale: 初步看leafletProxy部分应该是可以..但不能run也没法继续 03/02 01:27
3F:→ cywhale: 另外你有用到library应该要贴虽然我知道shinydashboard 03/02 01:28
不好意思 程式码已经修正
主要的疑问在於从本机或server的R-studio采Run App都可以正常跑
但上传到shiny-server後 如果从浏览器输入网址连到该APP
就会有leafletProxy()内的指令读不到的情况
※ 编辑: tytony (118.163.69.237), 03/02/2017 09:02:41
4F:推 cywhale: 在ubuntu run your code ok不会有错..单看code也觉没问题 03/02 12:16
5F:→ tytony: 感谢C大,那我再试看看 不然就只能换方式来写了 03/02 14:00
6F:→ tytony: 找到问题了 server端的Leaflet版本太旧 更新後就正常了 03/02 16:14