You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中循环遍历CSV数据行,逐行调用谷歌街景接口获取对应图片

实现方案

前置准备

googleway调用街景接口需要提前配置谷歌地图API密钥,且需要确保密钥已经开通Street View Static API权限,否则会出现请求失败问题。

完整实现代码

library(googleway)

# 配置你的谷歌地图API密钥
set_key("你自己的谷歌地图API密钥")

# 1. 读取CSV坐标文件,sep参数根据你的CSV实际分隔符调整:逗号分隔填",",空格/制表符分隔填""
df_coords <- read.csv("你的坐标CSV文件完整路径.csv", stringsAsFactors = FALSE)

# 2. 配置图片保存路径,提前在对应位置创建好保存文件夹
save_folder <- "./google_streetview_imgs/"

# 3. 遍历所有坐标批量拉取街景
for (row_idx in 1:nrow(df_coords)) {
  # 取出当前行的经纬度
  current_lat <- df_coords$lat[row_idx]
  current_lon <- df_coords$lon[row_idx]
  
  # 生成当前点位图片的保存路径,用行号+经纬度命名避免重名覆盖
  save_path <- paste0(save_folder, "sv_", row_idx, "_lat", current_lat, "_lon", current_lon, ".png")
  
  # 错误捕获:单个点位无街景/请求失败不会中断整体任务
  tryCatch({
    # 调用街景接口
    sv_img <- google_streetview(
      location = c(current_lat, current_lon),
      size = c(600, 400)
    )
    # 保存图片到本地
    writeBin(sv_img, save_path)
    # 打印进度方便追踪
    cat("已完成:第", row_idx, "/", nrow(df_coords), "个点位\n")
  }, error = function(err) {
    cat("拉取失败:第", row_idx, "个点位,错误原因:", err$message, "\n")
  })
}
注意事项
  • 20000次街景请求会产生谷歌API调用费用,提前确认你的账户配额和计费规则,避免超额扣费
  • 如果需要控制请求频率避免被接口限流,可以在循环末尾添加Sys.sleep(1),参数数字代表每次请求间隔的秒数
  • 跑全量任务前可以先把循环条件改成for (row_idx in 1:3),测试前3个点位确认逻辑正常后再运行全量

内容的提问来源于stack exchange,提问作者HelpMe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 05:24:05