和我们许多人一样,我不喜欢使用谷歌地图 - 我习惯于点击并拖动地图重新定位,或根据我的每一个心血来潮进行放大/缩小。
所以当我开始在Shiny中使用ggmaps时,我想我期待相同的功能。
在我正在使用的Shiny中,我可以很好地生成地图并且看起来很好,但是在生成之后,用户无法点击和重新定位,或放大/缩小?换句话说,我可以以任何方式利用一些基本的谷歌地图属性吗?如果没有,是否有一个不同的地图包可能有一些?
修改
斯科特张伯伦的评论足以让我走向正确的方向:
请参阅rstudio github.com/rstudio/leaflet的传单包
答案 0 :(得分:2)
这个问题有点陈旧,但我仍然想指出,向ggmaps输出添加交互性肯定是可能的,因为它是一个ggplot2对象。 Shiny具有固有的交互式工具功能,可记录ggplot2对象上的坐标(click,dblclick,hover和brush)。通过一些工作,这些记录的坐标可用于重新定位地图,放大位置,缩小等。
在一天结束时,它不会像谷歌和传单这样的地图那样互动,但ggmap / ggplot2包允许我认为有更多的图层选项。
如果您对制作ggmap互动感兴趣,请随时给我发消息。 (不想打出一个没有人会看的例子。)
答案 1 :(得分: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)
答案 2 :(得分:1)
在有光泽的示例库中,有一个superzip示例,其中包含一个交互式地图。您可以使用闪亮的源代码。
我认为它不会使用ggmap。
同一个gallary页面上的basic plot interaction demo确实显示了使用ggplot2图形的示例,并显示了如何识别点击位置,选择信息等。您可以使用该信息创建许多与您相同的工具正在寻找(在角落添加符号,当有人点击图表时,确定哪个符号最接近点击并相应地更新图表)。