我一直在尝试使用RStudio的Shiny库创建一个带有嵌入式Google街景的Web应用程序;但是无法在应用程序中获取街景视图。 我一直在使用以下示例JavaScript和HTML: https://developers.google.com/maps/documentation/javascript/examples/streetview-embed 我在这里粘贴:
<!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和服务器脚本是:
ui.R
shinyUI(fluidPage(
titlePanel("Google StreetView"),
mainPanel(
uiOutput("inc")
)
))
和
server.R
library(shiny)
shinyServer(function(input, output) {
getPage<-function() {
return(includeHTML("googleStreetViewContainer.html"))
}
output$inc<-renderUI({getPage()})
})
我已经在ui.R文件中直接使用includeHTML尝试了几个不同版本的ui.R和server.R文件,而不是在ui.R中定义getPage函数和使用标签$ script。文件。
我没有收到任何错误,但街景视图没有渲染。有什么想法吗?
答案 0 :(得分:4)
您可以使用我的googleway
包和有效的Google Maps API密钥
在Shiny中,您可以renderGoogle_map()
中的server
和google_mapOutput()
中的UI
来加载情节。
然后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)