我正在尝试使用Shiny在Internet Explorer和Google Chrome中工作时使用plotGoogleMaps,并且想知道我需要做些什么来修复它。
我使用的代码使用了不同question
的答案当Chrome是浏览器时,代码有效,但当IE是浏览器时,代码无效。
要在此处重复代码,请执行以下操作:
library(plotGoogleMaps)
library(shiny)
runApp(list(
ui = pageWithSidebar(
headerPanel('Map'),
sidebarPanel(""),
mainPanel(uiOutput('mymap'))
),
server = function(input, output){
output$mymap <- renderUI({
data(meuse)
coordinates(meuse) = ~x+y
proj4string(meuse) <- CRS("+init=epsg:28992")
m <- plotGoogleMaps(meuse, filename = 'myMap1.html', openMap = F)
tags$iframe(
srcdoc = paste(readLines('myMap1.html'), collapse = '\n'),
width = "100%",
height = "600px"
)
})
}
))
鉴于该文件已创建,我认为这可能是一个加载问题。
一如既往,我们将非常感谢任何帮助
答案 0 :(得分:4)
你的问题不是R,有光泽或plotGoogleMaps,但IE支持html5标准。 IE对srcdoc的支持不好,请阅读link。您可以使用polyfill来支持IE,但我认为没有必要,因为您已经在plotGoogleMaps步骤中创建了必要的html文件。
尝试以下代码。我没有给iframe srcdoc ,而是使用 src 属性。此外,谷歌地图html是在www目录中创建的,以便闪亮的将能够看到它。我在IE 11中使用它。我认为它应该在IE10中工作。
我将答案改为普通闪亮的应用程序解决方案,因为单个文件应用程序似乎也存在问题。这是shinyapps的链接。另请参阅modern.ie screenshots和所有IE screenshots here。
ui.R
library(plotGoogleMaps)
library(shiny)
shinyUI(fluidPage(
pageWithSidebar(
headerPanel('Map'),
sidebarPanel(""),
mainPanel(uiOutput('mymap'))
)
))
server.R
library(plotGoogleMaps)
library(shiny)
shinyServer(function(input, output) {
if (!file.exists("www"))
{
dir.create("www")
}
output$mymap <- renderUI({
data(meuse)
coordinates(meuse) = ~x+y
proj4string(meuse) <- CRS("+init=epsg:28992")
m <- plotGoogleMaps(meuse, filename = 'www/myMap1.html', openMap = F)
tags$iframe(
src = 'myMap1.html',
width = "100%",
height = "600px"
)
})
})