自动打开谷歌地图和街景

Nea*_*sch 1 javascript google-maps r shiny googleway

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

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

我为什么要这样做:

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

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

在此处输入图片说明

导致街景: 在此处输入图片说明

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

有没有办法做到这一点?

我也在研究 googleway 包,看看是否有另一种方式,但据我所知,我可以进入交互式全景,但不能直接进入街景。我也在研究在闪亮中使用 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)
Run Code Online (Sandbox Code Playgroud)

Sym*_*xAU 5

警告

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

您可以使用安装开发版本

devtools::install_github("SymbolixAU/googleway")
Run Code Online (Sandbox Code Playgroud)

例子

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

请注意两个 UI 输出、标准map输出和另一个我调用的pano. 这pano是然后在使用split_view参数google_map()

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)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

笔记

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