百度街景批量采集工具 — 轻量本地应用,支持多年份时序采集、断点续传、API Key 自动轮换
读取坐标 CSV,自动完成坐标转换 → 全景 ID 查询 → 时间线获取 → 图像下载全流程。
支持"全部年份 / 最新年份 / 指定年份"三种模式,适用于城市变化时序分析(2013–2024)。
下载前检查文件是否已存在,中途停止后重新运行可从断点继续,不重复消耗 API 配额。
自动检测配额耗尽(status 302/230),无缝切换下一个 Key。5 个 Key 支持约 25000 点/天。
基于 SSE 的实时日志和进度条,下载状态一目了然,不阻塞界面操作。
上传线要素 Shapefile,自动计算每条线段的方向角(DIREC 字段),结果打包 zip 下载。
生成点位 × 年份的覆盖矩阵 CSV,快速掌握各点位采集完整度。
内置图片浏览器,支持缩略图网格和全屏查看,方便快速核查采集结果。
通过解析百度 API 响应 status 码(302/230)实时检测配额耗尽,自动切换下一个 Key,所有 Key 耗尽时任务暂停并提示,已下载数据不丢失。支持线性扩展采集规模。
ThreadPoolExecutor 4 线程并发处理点位,使用 threading.Lock 保护 key_state 字典的读写,避免多线程竞态条件导致的重复切换或数据错乱。
采用 Server-Sent Events 替代轮询,下载线程通过 Queue 向 SSE 端点推送进度和日志,基于 HTTP 长连接实现,Flask 原生支持,无需额外 WebSocket 协议。
用 pyshp(100 KB 纯 Python)替代 geopandas + GDAL + Fiona 依赖链(约 140 MB),移除 PyQt6(~80 MB),核心依赖仅 flask + requests + pyshp,总体积约 15 MB。
点击上方按钮下载 SV_collect.exe,双击运行,浏览器自动打开操作界面。
前往 百度地图开放平台 注册账号,创建"服务端"应用,开通坐标转换和全景静态图服务,获取 API Key(AK)。
准备坐标 CSV 文件,包含 pointID、lng、lat、direction 四列(可点击界面中"下载模板"获取示例)。
在界面中填写坐标文件路径、输出文件夹、API Key,选择年份和方向后,点击"开始采集"即可。
| 层 | 技术 | 说明 |
|---|---|---|
| 后端 | Python 3 · Flask · threading | 本地 Web 服务 + 多线程下载 |
| 前端 | 原生 HTML / CSS / JavaScript | 单页应用,无框架依赖,离线可用 |
| 实时通信 | SSE(Server-Sent Events) | 实时进度日志推送 |
| 地理处理 | pyshp(shapefile) | 读写 .shp 文件,替代 geopandas |
| 打包 | PyInstaller | 打包为单文件 exe,约 30 MB |
127.0.0.1,不对外网暴露,API Key 保存在本地 config.json 中,请勿上传至公开仓库。