【问题标题】:interacting with ggmap in Shiny: can the user zoom, scroll, etc在 Shiny 中与 ggmap 交互:用户可以缩放、滚动等
【发布时间】:2015-08-05 15:14:21
【问题描述】:

像我们中的许多人一样,我习惯于使用 Google 地图——我习惯于点击并拖动地图以重新定位,或者根据我的每一个心血来潮进行放大/缩小。

所以当我开始在 Shiny 中使用 ggmaps 时,我想我期待相同的功能。

在我正在使用的示例 Shiny 中,我可以很好地生成地图并且看起来不错,但是在生成之后,用户是否无法单击并重新定位或放大/缩小?换句话说,我可以以任何方式利用一些基本的谷歌地图属性吗?如果没有,是否有其他地图包可能包含其中一些内容?

编辑

Scott Chamberlain 的评论足以让我找到正确的方向:
请参阅 rstudio github.com/rstudio/leaflet 提供的传单包

【问题讨论】:

标签: r google-maps shiny


【解决方案1】:

这个问题有点老了,但我仍然想指出,向 ggmaps 输出添加交互性绝对是可能的,因为它是一个 ggplot2 对象。 Shiny 具有固有的交互工具功能,可以记录 ggplot2 对象上的坐标(单击、dblclick、悬停和画笔)。通过一些工作,这些记录的坐标可用于重新定位地图、放大位置、缩小等。

归根结底,它不会像谷歌和传单那样具有交互性,但我认为 ggmap/ggplot2 包允许更多图层选项。

如果您对制作 ggmap 互动有任何兴趣,请随时给我发消息。 (不想打出没人会看的例子)。

【讨论】:

    【解决方案2】:

    使用我的 googleway 包,您现在可以绘制交互式 Google 地图

    library(shiny)
    library(googleway)
    
    ui <- fluidPage(
        sidebarLayout(
            sidebarPanel(),
            mainPanel(
                google_mapOutput(outputId = "myMap")
            )
        )
    )
    
    server <- function(input, output){
    
        # mapKey <- 'your_api_key'
        output$myMap <- renderGoogle_map({
            google_map(key = mapKey)
        })
    }
    
    shinyApp(ui, server)
    

    【讨论】:

      【解决方案3】:

      在闪亮的示例库中是一个 superzip 示例,其中包括一个交互式地图。闪亮的源代码可供您使用。

      我不认为它使用 ggmap。

      同一画廊页面上的basic plot interaction demo 确实展示了一个使用 ggplot2 图形的示例,并展示了如何识别点击位置、选择信息等。您可以使用该信息来创建许多您正在寻找的相同工具for(在角落添加符号,当有人点击图表时,找出最接近点击的符号并相应地更新图表)。

      【讨论】:

        猜你喜欢
        • 2013-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        相关资源
        最近更新 更多