【问题标题】:Automatically open both Google Map and Streetview自动打开谷歌地图和街景
【发布时间】:2018-07-31 14:16:40
【问题描述】:

我想知道是否有比我在 R Shiny 更好的人可以告诉我以下是否可能(可能不是,但我想知道是否可能)。

问题:我可以在 Shiny 中同时打开谷歌地图和交互式街景吗?

我为什么要这样做:

我有一个来自 googleway 包闪亮集成的编程谷歌地图。它看起来如下(底部的代码):

在我闪亮的应用程序中,我可以从角落的图标中单击并拖动街景家伙:

导致街景:

我想通过操作按钮或选项卡单击直接跳入此街景,而不是让用户执行拖放过程,这样我就可以将地图放在一个闪亮的选项卡中并直接进入另一个选项卡中的交互式街景,或者更好的是地图和街景并排(链接在这里:https://developers.google.com/maps/documentation/javascript/examples/streetview-simple)。

有没有办法做到这一点?

我也在研究 googleway 包,看看是否有其他方法,但据我所知,我可以进入交互式全景图,但不能直接进入街景。我也在研究使用 Shiny 中的 html 集成直接进入街景服务的可能性。

代码(经过简化,但经过测试):

library(googleway)
library(shiny)

gpscoordlat <- 39.647806
gpscoordlon <- -104.940230
markerpointsplace <- data.frame(
  lat=c(gpscoordlat),
  lon=c(gpscoordlon)
)

ui <- fluidPage(google_mapOutput("map"))


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

 ###Use Your API key here###
  api_key <- "GoogleAPIKeyHere"


  output$map <- renderGoogle_map({
    google_map(location=c(gpscoordlat, gpscoordlon), key= api_key, zoom=15) %>%
      add_markers(data=markerpointsplace , update_map_view= FALSE)

  })
}
shinyApp(ui, server)

【问题讨论】:

  • “拆分视图”在我的todo list 上...我最终会解决的,但目前我不知道有一种简单的方法可以完成您的要求.
  • @SymbolixAU,所以我显然在使用你的包(再次感谢你,很棒的工作)。很好,它在列表中,如果我找到解决方法,我会将它发布在 github 问题上。
  • 我已将功能移至项目的主分支;我很高兴它按预期工作。这是你在想的那种事情吗?
  • 根据下面的答案是的!我现在正在查看和测试。干杯!!!

标签: javascript r google-maps shiny googleway


【解决方案1】:

注意

此功能目前正在开发中。可以跟踪directly on github 的进度,但我会努力更新这篇文章。

您可以使用

安装开发版本
devtools::install_github("SymbolixAU/googleway")

示例

这是两张地图的示例,均由同一个街景“街景小人”控制。

注意两个 UI 输出,标准的 map 输出,以及另一个我称为 pano 的输出。这个pano 然后用在google_map()split_view 参数中

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

ui <- dashboardPage(

  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    box(width = 6,
      google_mapOutput(outputId = "map")
    ),
    box(width = 6,
        google_mapOutput(outputId = "pano")
    )
  )
)

server <- function(input, output) {
  set_key("map_api_key")

  output$map <- renderGoogle_map({
    google_map(location = c(-37.817386, 144.967463), 
             zoom = 12, 
             split_view = "pano")
  })
}

shinyApp(ui, server)

注意事项

  • 如果您的初始位置不直接位于有效的“街景”位置,则街景页面将为空白

【讨论】:

  • 所以这太棒了。非常适合我迄今为止测试过的地址(也可以通过 googleway 进行地理编码)。有没有办法在 (developers.google.com/maps/documentation/javascript/examples/…) 上包含全屏选项? IE。全屏控制=真?如果不是真的不用担心,这太棒了!我还修改了问题,使其与寻找此功能的用户更相关(使其更适用于更新的标题)。再次感谢!
  • @NealBarsch - 这些其他选项应该是可能的。只需要弄清楚如何使用它们。我希望你不介意编辑问题标题 - 我想我会让它更好地反映要求(并且更“可搜索”)
  • 完全没问题。很高兴让想要这样做的人更容易找到它,它回答了我无论如何都想做的事情。至少我可以做多少我使用googleway(字面意思是每天)。有没有可以推荐的地方来学习如何编写在 googleway 中编写的 Java 小部件?它似乎非常有用,而且我正在学习 Java 的过程中,除了 htmlwidgets 包指南之外的任何地方?我一直在使用 googleway 代码作为示例,通过示例可以更好地学习东西。
  • 另外,如果我不是太贪心,我会使用(以及其他人可能)的函数建议将是浏览器 google_map_pano 函数中存在的标题函数。在我的情况下,意图是打开街景查看输入的地址。但这已经很好了,所以这只是一个建议。
  • @NealBarsch 我从阅读及时投资组合的'build a widget a week' projectleaflet source code 中学到了很多东西。你会注意到我使用了很多他们的结构。和你一样,我通过学习其他人的例子学得最好。
猜你喜欢
  • 2016-10-13
  • 2015-10-09
  • 1970-01-01
  • 1970-01-01
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多