Автоматически открывать Google Map и Streetview

1

Мне интересно, может ли кто-то лучше, чем я в R Shiny, сказать мне, возможно ли следующее (может быть, нет, но я хотел бы знать, если нет).

Вопрос: Могу ли я открыть как карту Google, так и интерактивное уличное представление в Shiny?

Почему я хочу это сделать:

У меня есть запрограммированная карта google, исходящая из интегрированной системы googleway. Он выглядит ниже (код внизу): Изображение 174551

В моем блестящем приложении я могу щелкнуть и перетащить парня в стиле streetview из значка в углу:

Изображение 174551

Результат в просмотре улиц: Изображение 174551

Я хотел бы перейти прямо в это уличное представление на кнопку действия или щелчок на вкладке вместо того, чтобы сделать процесс перетаскивания пользователем, чтобы я мог иметь карту на одной блестящей вкладке и непосредственно в интерактивном просмотре улиц на другой вкладке, или еще лучше иметь карту и уличное обозрение бок о бок, как в (ссылка здесь: 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)
  • 0
    «Разделенное представление» находится в моем списке задач ... Я в конце концов доберусь до него, но в настоящий момент я не знаю простого способа сделать то, что вы просите.
  • 0
    @SymbolixAU, так что я, очевидно, использую ваш пакет кучу (еще раз, спасибо, отличная работа). Здорово, что он есть в списке, я опубликую его по вопросам github, если найду обходной путь.
Показать ещё 2 комментария
Теги:
shiny
google-maps
googleway

1 ответ

4
Лучший ответ

предосторожность

Эта функциональность в настоящее время разрабатывается. Прогресс можно отслеживать непосредственно на github, но я постараюсь обновить этот пост по мере продвижения.

Вы можете установить версию разработки, используя

devtools::install_github("SymbolixAU/googleway")

пример

Вот пример двух карт, которые контролируются одним и тем же уличным представлением "пегман".

Обратите внимание на два выхода пользовательского интерфейса, стандартный вывод 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)

Изображение 174551

Заметки

  • если ваше первоначальное местоположение не попадает прямо в действительное место просмотра улиц, страница уличного просмотра будет пуста
  • 0
    Так что это довольно круто. Отлично работает с адресами, которые я тестировал до сих пор (которые также геокодируются через googleway). Есть ли способ включить полноэкранный вариант, доступный по адресу ( developers.google.com/maps/documentation/javascript/examples/… )? Т.е. fullscreen_control = TRUE? Серьезно, не беспокойтесь, если нет, это здорово! Я также изменил вопрос, чтобы сделать его более актуальным для пользователей, которые ищут эту функциональность (чтобы сделать его более применимым с обновленным названием). Еще раз спасибо!
  • 0
    @NealBarsch - эти другие варианты должны быть возможны. Просто нужно выяснить, как с ними работать. И я надеюсь, что вы не возражаете против редактирования названия вопроса - я подумал, что я сделаю так, чтобы оно лучше отражало требование (и более «доступное для поиска»)
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню