如何从R语言访问谷歌街景视图?

7

通过ggmap,可以非常方便地使用谷歌地球图像接口。例如:

ggmap::get_map(location = c(lon = -95.3632715, lat = 29.7632836), 
               maptype ="satellite",zoom=20)

这将从Google Maps/Earth返回卫星地图图像。在Google Maps网站上,如果您缩放更多,它会切换到街景。是否有类似的方法从R中获取街景图像?

似乎存在一个API,但找不到类似于R中ggmap接口的内容。


我没有答案,但我可以问一下你拿到 R 中的图像后想做什么? ggmap 很有用,因为你可以在地图上添加内容,但是 Streetview 提供的图像实际上无法在其上绘制。如果没有答案,我建议编写访问 API 的函数。 - Jonathan Carroll
虽然如果这是针对您的“地球色调”包,我认为您会想要一个静态图像? - SymbolixAU
是的,这就是想法——让人们获取大堡礁和其他一些有趣地方街景相机拍摄的颜色。 - Will Cornwell
@WillCornwell - 我已经更新了googleway,现在可以下载静态街景图像,并已将代码添加到我的答案中。 - SymbolixAU
2个回答

13

我的googleway软件包具有谷歌地图小部件,并且还可以与Shiny配合使用。

您需要有效的Google API密钥才能使用它

library(googleway)

key <- "your_api_key"

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

google_map(key = key, height = 600, search_box = T) %>%
    add_markers(data = df, info_window = "info")

## other available methods
# add_markers
# add_heatmap
# add_circles
# add_traffic
# add_bicycling
# add_transit

卫星图

enter image description here

卫星图/街景

enter image description here

街景图

(请注意标记仍然存在)

enter image description here


更新 - 静态街景地图

还有一个google_streetview()函数,可以下载静态街景图像(使用Google Street View Static Image API)

google_streetview(location = c(-37.8177, 144.967),
                  size = c(400,400),
                  panorama_id = NULL,
                  output = "plot",
                  heading = 90,
                  fov = 90,
                  pitch = 0,
                  response_check = FALSE,
                  key = key)

enter image description here


谢谢@miguev - 我已经更新了我的软件包,现在可以下载静态街景图片。 - SymbolixAU
请问为什么我尝试您的第一段代码时什么都没有得到?当我运行它时,我进入了查看器,但没有任何反应。另外,您能否请给出交通图层的示例? - Omar Abd El-Naser
1
@Alsqer - 在Rstudio的查看器窗格中,有一个名为“在新窗口中显示”的按钮。根据您的设置,这将在浏览器中打开它,或在新的RStudio窗口中打开。如果打开了一个新的RStudio窗口,则需要按“在浏览器中打开”。 - SymbolixAU
1
@Alsqer - 要添加交通图层,只需调用 add_traffic()google_map(key = key, height = 600, search_box = T) %>% add_markers(data = df, info_window = "info") %>% add_traffic() - SymbolixAU
1
@Alsqer 没关系。我还没有弄清楚为什么在某些 Rstudio 中,查看器会显示地图,而在其他情况下则不会。我有两台电脑,所有版本都相同,其中一台显示地图,另一台则不显示。这很奇怪。 - SymbolixAU
显示剩余4条评论

-4

目前还没有一个R包能做到这一点,但是我可以向您提供两个方法来完成此任务。

  1. 使用rvest、其他爬虫软件,甚至只需使用download.file和许多提供不同接口/视图的独立网站来获得街景数据。

    这样,您就可以将URI参数化并下载目标图像。

  2. 使用V8(可能利用browserify运行npmextract-streetview


1
请注意,直接下载街景图片可能违反Google的使用条款。有关详细信息,请参阅https://www.google.com/permissions/geoguidelines.html。(Streetview数据仅限于:1.数据显示在网站上或2.使用API下载数据) - PavoDive
谢谢这个。我想这是关键部分:“如果您对Street View图像有学术性且非商业性的请求,而且不符合这些准则,您可以通过streetview-academic@google.com与我们联系,并提供您项目的详细信息以请求许可。”在我采取任何行动之前,我会先和他们确认。 - Will Cornwell
1
有一种方法 - 请看我的答案。 - SymbolixAU

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接