- 三级地图视图:支持省级、市级、县级三级地图展示
- 自定义地图渲染:基于 Canvas 的高性能地图渲染引擎
- 手势操作:支持双指缩放(最大20x)、拖拽平移、单击选择、双击下钻
- 智能联动高亮:访问子区域自动高亮父区域(如:访问天河区则广东省、广州市自动显示已访问)
- 多级别记录:支持记录省份、城市、区县三级足迹
- 足迹详情:记录访问日期、添加备注信息
- 数据导入导出:支持 JSON 格式数据备份与恢复
- CSV 导出:方便的数据分析导出
- 联动统计:自动统计已访问的省份、城市、区县数量
- 访问1个区县 → 区县+1、城市+1、省份+1
- 实时更新:添加足迹后统计数据自动刷新
- Material Design 3:采用最新的 Material Design 设计规范
- 暗色模式:支持跟随系统深色模式
- 流畅动画:精心设计的页面切换和交互动画
| 地图主页 | 足迹列表 | 设置页面 |
|---|---|---|
| 地图浏览 | 足迹管理 | 数据统计 |
从 Releases 页面下载最新的 app-debug.apk 文件,安装到 Android 设备。
# 克隆仓库
git clone https://github.com/xnbx2012/PeterTraceMap.git
cd PeterTraceMap
# 编译 APK
./gradlew assembleDebug
# APK 输出位置
# app/build/outputs/apk/debug/app-debug.apk- Kotlin 2.1.0 - 现代化的 Android 开发语言
- Jetpack Compose - 声明式 UI 框架
- Coroutines - 异步编程
- MVVM + MVI - 清晰的架构分层
- Repository Pattern - 数据层抽象
- Single Source of Truth - 使用 Room 作为唯一数据源
- Hilt - Google 推荐的依赖注入框架
- Room 2.6.1 - Android 官方 ORM 框架
- Navigation Compose - Compose 专用导航组件
- Kotlinx Serialization - Kotlin 官方序列化库
app/
├── data/ # 数据层
│ ├── asset/ # 资源文件(地图数据)
│ ├── local/ # 本地数据源
│ │ ├── database/ # Room 数据库
│ │ └── entity/ # 数据库实体
│ └── repository/ # Repository 实现
├── domain/ # 领域层
│ ├── model/ # 数据模型
│ └── repository/ # Repository 接口
├── presentation/ # 表现层
│ ├── list/ # 足迹列表页面
│ ├── map/ # 地图页面
│ │ ├── components/ # 地图相关组件
│ │ └── renderer/ # 地图渲染引擎
│ └── settings/ # 设置页面
└── di/ # 依赖注入模块
项目使用 阿里云 DataV 提供的中国标准地图 GeoJSON 数据,经几何简化处理后嵌入应用。
采用 12 位编码格式:156 + 省级(2位) + 市级(2位) + 县级(2位) + 填充(3位0)
156440000000 # 广东省
156440100000 # 广州市
156440106000 # 天河区
- 基础地图渲染
- 三级地图视图
- 足迹增删改查
- 联动高亮显示
- 数据统计
- 数据导入导出
- 图片记录支持
- 足迹分享功能
- 地图样式自定义
- 多语言支持
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
本项目采用 MIT 协议开源。
PeterZhong - GitHub
- 阿里云 DataV - 提供中国标准地图数据
- Jetpack Compose - Google 现代化 UI 工具包
- Hilt - Google 依赖注入框架
如果这个项目对你有帮助,请给一个 ⭐️ Star
Made with ❤️ by PeterZhong