📍 GeoRenamer
按位置信息重命名照片/视频 — 读取 GPS 坐标,自动反查地名,按自定义格式批量重命名文件。
✨ 功能特性
- 📍 GPS 定位:读取照片/视频的 GPS 坐标,支持 JPEG、PNG、HEIC、RAW、MP4、MOV 等格式
- 🗺️ 地名反查:支持离线(GeoNames 70,000+ 城市)和在线(高德/百度/腾讯地图)
- ✏️ 自定义命名规则:支持占位符组合(日期、地点、原文件名等)
- 🎨 个性化设置:背景颜色主题、API Key 本地保存
- 📁 批量处理:支持拖拽添加,预览后确认执行
- 🔄 区域排序:可选从大到小(省→市→区)或从小到大(区→市→省)
📦 安装使用
下载安装版(推荐)
- 下载
GeoRenamer Setup x.x.x.exe - 运行安装程序,按提示完成安装
- 从桌面或开始菜单启动
使用便携版
- 下载
GeoRenamer x.x.x.exe - 双击直接运行,无需安装
🛠️ 开发环境
环境要求
- Node.js >= 18
- npm 或 pnpm
安装依赖
npm install
开发运行
npm start
打包构建
# 安装版
npm run build:installer
# 便携版
npm run build:portable
# 全部
npm run build
📖 使用说明
基本操作
- 点击 ➕ 添加文件 或拖拽照片/视频到窗口
- 选择地名引擎(推荐高德/百度/腾讯,国内更快更准)
- 点击 🔍 开始解析,等待读取元数据和反查地名
- 在表格中预览「原文件名 → 新文件名」
- 对无 GPS 的文件,点击 ✏️ 手动补地点 输入地名
- 确认无误后点击 ✅ 确认重命名 执行
命名规则
默认格式:{date}_{place} → 20250101_153000_杭州西湖区.jpg
支持的占位符:
{date}- 日期时间(20250101_153000){place}- 完整地点(杭州西湖区){region}- 行政区域(根据排序设置自动组合){province}/{city}/{district}- 省/市/区{original}- 原文件名{年}/{月}/{日}/{时}/{分}/{秒}- 时间分量
区域排序
- 从小到大:区→市→省(如:西湖区杭州浙江)
- 从大到小:省→市→区(如:浙江杭州西湖区)
⚙️ 设置说明
地名引擎
| 引擎 | 说明 | 需要 |
|---|---|---|
| 离线城市库 | GeoNames 数据,70,000+ 城市 | 无需网络 |
| 高德地图 | 国内推荐,精确到区县 | Web 服务 Key |
| 百度地图 | 覆盖最全 | AK |
| 腾讯地图 | 微信生态 | Key |
外观设置
- 支持自定义背景颜色
- 提供 6 种预设颜色主题
📁 项目结构
geo-renamer/
├── assets/ # 图标和资源文件
├── data/ # 离线数据(城市库、翻译映射)
│ ├── cities.json # 70,000+ 城市坐标库
│ └── translations.json # 多语言地名翻译
├── lib/ # 核心逻辑
│ ├── geocode.js # 地名反查(离线/高德/百度/腾讯)
│ ├── metadata.js # EXIF 元数据读取(exiftool)
│ ├── naming.js # 文件名生成与去重
│ └── store.js # 设置持久化
├── renderer/ # 前端界面
│ ├── index.html # 主页面
│ ├── app.js # 界面逻辑
│ └── style.css # 样式
├── main.js # Electron 主进程
├── preload.js # 预加载脚本
└── package.json # 项目配置
🔧 技术栈
- Electron - 跨平台桌面应用框架
- exiftool-vendored - 专业元数据读取(支持 200+ 格式)
- GeoNames - 全球城市坐标数据库
- Nominatim/高德/百度/腾讯 - 在线地名反查 API
📄 许可证
- ✅ 允许:个人使用、20 人及以下公司团队内部使用
- ✅ 允许:教育机构、非营利组织使用
- ❌ 禁止:商业盈利使用(销售、付费服务、商业分发等)
如需商业使用,请联系作者获取商业授权。
详见 LICENSE
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📝 更新日志
v0.0.5
- 优化启动性能(懒加载、空间索引)
- 移除菜单栏
- 自定义应用图标
- 移除背景图片功能
- 修复中国地名显示问题
v0.0.4
- 新增省/市/县级别命名占位符
- 支持行政区域排序(从小到大/从大到小)
v0.0.3
- 新增百度地图、腾讯地图支持
- GeoNames 完整数据(69,972 个城市)
- 自定义命名规则
- 设置本地保存
v0.0.2
- JavaScript 重写(Electron)
- 内置 exiftool-vendored
- 高德地图支持
v0.0.1
- 初始版本(Python)
- 基本功能实现