2015-05-05 8 views
2

Я пытаюсь создать веб-приложение со встроенным Google Street View, используя библиотеку RStudio Shiny; но не смогли получить вид на улицу, чтобы отобразить в приложении. Я использую пример JavaScript и HTML из: https://developers.google.com/maps/documentation/javascript/examples/streetview-embed который я вставляю здесь:Google Street View container in Shiny Application

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Street View containers</title> 
    <style> 
     html, body, #map-canvas { 
     height: 100%; 
     margin: 0px; 
     padding: 0px 
     } 
    </style> 
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script> 
    <script> 
function initialize() { 
    var bryantPark = new google.maps.LatLng(37.869260, -122.254811); 
    var panoramaOptions = { 
    position: bryantPark, 
    pov: { 
     heading: 165, 
     pitch: 0 
    }, 
    zoom: 1 
    }; 
    var myPano = new google.maps.StreetViewPanorama(
     document.getElementById('map-canvas'), 
     panoramaOptions); 
    myPano.setVisible(true); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

    </script> 
    </head> 
    <body> 
    <div id="map-canvas"></div> 
    </body> 
</html> 

Мои пользовательского интерфейса и сервера скрипты:

ui.R

shinyUI(fluidPage(
    titlePanel("Google StreetView"), 
    mainPanel(
    uiOutput("inc") 
) 
)) 

и

сервер.R

library(shiny) 

shinyServer(function(input, output) { 
    getPage<-function() { 
    return(includeHTML("googleStreetViewContainer.html")) 
    } 
    output$inc<-renderUI({getPage()}) 
}) 

Я пробовал несколько различных версий файлов ui.R и server.R, используя includeHTML непосредственно в файле ui.R, а не определяя функцию getPage, а также используя скрипт $ script в файле ui.R файл.

У меня не было никаких ошибок, но просмотр улиц не является рендерингом. Есть идеи?

+0

Параметр 'googleVis' пакет позволяет интегрировать веб-приложение с картами и графиками от Google. Вы можете взглянуть на него. – nicola

ответ

1

Вы можете сделать это с моим googleway пакета и уважительным Google Maps API ключа

В Shiny вы называете renderGoogle_map() в server и google_mapOutput() в UI для загрузки участка.

Затем google_map() для запуска карты. Когда он открыт вы можете получить доступ к спутниковым/просмотру улиц как обычно на Google Map

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

df <- data.frame(lat = -37.817714, 
           lon = 144.967260, 
           info = "Flinders Street Station") 

map_key <- "your_api_key_here" 

ui <- dashboardPage(
    dashboardHeader(), 
    dashboardSidebar(), 
    dashboardBody(
    box(google_mapOutput("myMap")) 
) 
) 


server <- function(input, output){ 

    output$myMap <- renderGoogle_map({ 
     google_map(location = c(df$lat, df$lon), key = map_key, search_box = T) 
    }) 
} 

shinyApp(ui, server) 

enter image description here

Смежные вопросы