Shiny plotGoogleMaps Internet Explorer vs Chrome

时间:2014-11-25 14:37:07

标签: r google-chrome internet-explorer shiny

我正在尝试使用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"
       )
     })
   }
))

鉴于该文件已创建,我认为这可能是一个加载问题。

一如既往,我们将非常感谢任何帮助

1 个答案:

答案 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"
    )
  })

})