当我在ui中定义了所有元素时,我如何将谷歌地图添加到Shiny应用程序中.R文件

How can I add a Google Map to a Shiny app when I have all elements defined in a ui.R file?

本文关键字:谷歌地图 添加 应用程序 文件 Shiny 定义 ui 元素      更新时间:2023-09-26

出于代码维护的原因,我正在将HTML/CSS/JavaScript组合应用程序移植到Shiny。我试图在最终的应用程序中尽量减少HTML的数量,所以在www文件夹中拥有自定义HTML界面不是一个选择。

初始化地图对于HTML/CSS/JavaScript应用程序来说很好。地图会自动显示,用户可以很容易地与之交互。然而,在ui.R中用tags$head(tags$script(src="initializeMap.js"))加载JavaScript会导致没有显示地图。我的ui.R代码具有以下结构。请注意,initializeMap.js位于项目中的www文件夹中:

shinyUI(fluidPage(
  tags$head(tags$script(src="initializeMap.js")),  # Initialize the Google Map
  includeScript("https://maps.googleapis.com/maps/api/js"),
  includeScript("https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"),
    h1("Where did you live on July 1, 2014?"),
     mainPanel(
   # Other stuff
)))

initializeMap.js初始化Google地图并控制一些自定义行为,比如一次只允许一个标记。

原来我忘了设置地图画布。添加线tags$body(tags$div(id="map-canvas", style="width: 500px; height: 400px;"))设置了一个可见的映射。