R 在“闪亮”中更改谷歌地图热图选项

R 在“闪亮”中更改谷歌地图热图选项,r,shiny,heatmap,googleway,R,Shiny,Heatmap,Googleway,我正在使用谷歌图书馆在闪亮的R 热图显示正确,但我无法更改热图选项。如果我取消注释试图更改选项的块代码,应用程序将崩溃 下面是代码中有效的部分,注释掉了有问题的行 library(googleway) library(magrittr) library(shiny) library(shinydashboard) # Define UI for app header1 <- dashboardHeader( title = "My Dashboard" ) sidebar1 &l

我正在使用谷歌图书馆在闪亮的R

热图显示正确,但我无法更改热图选项。如果我取消注释试图更改选项的块代码,应用程序将崩溃

下面是代码中有效的部分,注释掉了有问题的行

library(googleway)
library(magrittr)
library(shiny)
library(shinydashboard)

# Define UI for app

header1 <- dashboardHeader(
  title = "My Dashboard"
)

sidebar1 <- dashboardSidebar(
  sidebarMenu(
    fileInput("file0", "Choose CSV File",
              multiple = TRUE,
              accept = c("text/csv",
                         "text/comma-separated-values,text/plain",".csv")),
    sliderInput("opacity", "Opacity:",
                min = 0, max = 1,
                value = 0.5, step = 0.05),
    sliderInput("radius", "Radius:",
                min = 0, max = 50,
                value = 25),
    sliderInput("blur", "Blur:",
                min = 0, max = 1,
                value = 0.75, step = 0.05),
    sliderInput("maxvalue", "MaxValue:",
                min = 0, max = 1,
                value = 1, step = 0.05)
  ) #sidebarMenu
) #dashboardSidebar

body1 <- dashboardBody(
  fluidRow(
    tabBox(
      title = "TabBox Title 1",
      id = "tabset1", height = "400px", width = 11,
      selected = "Tab1",
      tabPanel("Tab1",
               google_mapOutput("Map1")
      ),
      tabPanel("Tab2", "Tab content 2")
    ) #box
  ) #fluidRow
) #dashboardBody

ui <- dashboardPage(header1, sidebar1, body1)

# Define data
df <- data.frame(lat = c(14.61),
                  lon = c(-90.54),
                  weight = c(100))


# Define SERVER logic
server <- function(input, output, session) {

  map_key <- "my_key"
  ## https://developers.google.com/maps/documentation/javascript/get-api-key

  ## plot the map
  output$Map1 <- renderGoogle_map({
    google_map(key = map_key, data = df, zoom = 2, search_box = F) %>%
      add_heatmap(weight = "weight") #%>%
      #add_traffic()

  }) #renderGoogle_map

  observeEvent(input$opacity, {

    # THIS PART IS COMMENTED OUT BECAUSE THE APP CRASHES
    # google_map_update(map_id = "Map1") %>%
    #   update_heatmap(data = df, option_opacity = input$opacity)

  }) #observeEvent

} #server


# Run app
shinyApp(ui, server)
library(googleway)
图书馆(magrittr)
图书馆(闪亮)
图书馆(shinydashboard)
#定义应用程序的用户界面

header1您可以使用
反应({})
携带
输入$opacity
值,并将其直接传递到
添加热图()
以实现不透明度响应

这仍然可以在
google\u map\u update()
中完成,但是您必须首先清除热图层,否则您只能在每个层的顶部添加层

server <- function(input, output, session) {

    map_key <- "your_key"
    ## https://developers.google.com/maps/documentation/javascript/get-api-key

    opacity <- reactive({
        return(input$opacity)
    })

    ## plot the map
    output$Map1 <- renderGoogle_map({
        google_map(key = map_key, data = df, zoom = 2, search_box = F) %>%
            add_heatmap(weight = "weight") #%>%
        #add_traffic()

    }) #renderGoogle_map

    observeEvent(input$opacity, { 

        google_map_update(map_id = "Map1") %>%
            clear_heatmap() %>%
            add_heatmap(data = df, option_opacity = opacity())
        })
    }

} #server
server%
添加\u热图(数据=df,选项\u不透明度=opacity())
})
}
}#服务器

update\u heatmap
没有
选项\u opacity
参数。您当前只能更新
weight
值您是否可以将
input$opacity
直接传递到
add\u heatmap(option\u opacity=)
以实现您想要的控制?@Nate-是的,但是您必须先
清除
原始的heatmap层,这在大数据上可能看起来很笨拙。我已经添加了这个,但我不确定它现在是如何可行的(注释:我是GooGeWoad的作者)一个很好的工作,但是也许考虑使用它在<代码> GoGoLeLeMaPuxUpdate <代码>中,来更新当前的地图,而不是每次重新加载一个新的地图。另外,如果你感兴趣的话,我已经做了很多补充,明天早上一定会阅读这些例子。来自UTC-5的干杯。也是如此awesome@fhaidacher-在github的开发版本中,
add\u heatmap()
函数有一个
update\u map\u view
参数。将此设置为false,它将起作用。dev版本的安装说明在github的最新版本中,我现在有一个示例,您可以在其中更新。该版本不久将发布到CRAN