Это немного догадка, так как у меня нет ключа 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
.Это должен быть URL изображения.Так что позвоните с output="html"
и сохраните возвращаемое значение, а затем загрузите:
url = google_streetview(..., output="html")
t = tempfile()
download.file(url, t, model="wb")
message(t, " should be a JPEG...")
Вы пытались сделать это с output="plot"
, и в этом случае он возвращает return(graphics::rasterImage(pic, 0, 0, 1, 1))
, который всегда является значением NULL.