如何在 R 中保存为 google 街景 API 的图像响应?
How to save as image response of google streetview API in R?
我需要将来自 google_streetview API
的结果保存为图像(.jpg、.png)
我正在一个小项目中工作以测试图像识别算法。我正在从 google 街下载一些图片,我需要将这些图片保存为 .jpg 或 .png 格式。
library(googleway)
p <- google_streetview(location = c(centerlat,centerlng),
size = c(500,500),
panorama_id = NULL,
output = "plot",
heading = 0,
fov = 15,
pitch = 0,
response_check = FALSE,
key = key)
我尝试使用 download.file 和图书馆成像仪:
第一个:
download.file(p, destfile="test.jpg")
if (stringr::str_count(imagePath, "http") > 0) { 中出错:
参数的长度为零
第二个:
library(imager)
imager::save.image(p,"test.jpeg")
imager::save.image(p, "test.jpeg") 错误:
第一个参数应该是图像
如何自动保存这些图像?
这有点靠猜测,因为我没有 API 密钥。
这是google_streetview
函数的最后一位:
map_url <- constructURL(map_url, c(location = location, pano = panorama_id,
size = size, heading = heading, fov = fov, pitch = pitch,
key = key))
if (output == "plot") {
z <- tempfile()
utils::download.file(map_url, z, mode = "wb")
pic <- jpeg::readJPEG(z)
file.remove(z)
graphics::plot(0:1, 0:1, type = "n", ann = FALSE, axes = FALSE)
return(graphics::rasterImage(pic, 0, 0, 1, 1))
}
else {
return(map_url)
}
请注意,如果 output="plot"
,则 map_url
将下载到 tempfile
,将其读入 jpeg,然后绘制,并删除临时文件。我们怎样才能得到那个 jpeg?
如果 output="html"
则 map_url
是 returned。这必须是图像的 URL。所以用output="html"
调用并存储return值,然后下载:
url = google_streetview(..., output="html")
t = tempfile()
download.file(url, t, model="wb")
message(t, " should be a JPEG...")
您已尝试使用 output="plot"
执行此操作,在这种情况下 returns return(graphics::rasterImage(pic, 0, 0, 1, 1))
始终为 NULL 值。
我需要将来自 google_streetview API
的结果保存为图像(.jpg、.png)我正在一个小项目中工作以测试图像识别算法。我正在从 google 街下载一些图片,我需要将这些图片保存为 .jpg 或 .png 格式。
library(googleway)
p <- google_streetview(location = c(centerlat,centerlng),
size = c(500,500),
panorama_id = NULL,
output = "plot",
heading = 0,
fov = 15,
pitch = 0,
response_check = FALSE,
key = key)
我尝试使用 download.file 和图书馆成像仪:
第一个:
download.file(p, destfile="test.jpg")
if (stringr::str_count(imagePath, "http") > 0) { 中出错: 参数的长度为零
第二个:
library(imager)
imager::save.image(p,"test.jpeg")
imager::save.image(p, "test.jpeg") 错误: 第一个参数应该是图像
如何自动保存这些图像?
这有点靠猜测,因为我没有 API 密钥。
这是google_streetview
函数的最后一位:
map_url <- constructURL(map_url, c(location = location, pano = panorama_id,
size = size, heading = heading, fov = fov, pitch = pitch,
key = key))
if (output == "plot") {
z <- tempfile()
utils::download.file(map_url, z, mode = "wb")
pic <- jpeg::readJPEG(z)
file.remove(z)
graphics::plot(0:1, 0:1, type = "n", ann = FALSE, axes = FALSE)
return(graphics::rasterImage(pic, 0, 0, 1, 1))
}
else {
return(map_url)
}
请注意,如果 output="plot"
,则 map_url
将下载到 tempfile
,将其读入 jpeg,然后绘制,并删除临时文件。我们怎样才能得到那个 jpeg?
如果 output="html"
则 map_url
是 returned。这必须是图像的 URL。所以用output="html"
调用并存储return值,然后下载:
url = google_streetview(..., output="html")
t = tempfile()
download.file(url, t, model="wb")
message(t, " should be a JPEG...")
您已尝试使用 output="plot"
执行此操作,在这种情况下 returns return(graphics::rasterImage(pic, 0, 0, 1, 1))
始终为 NULL 值。