Skip to content

Repository files navigation

PeterTraceMap

Android Kotlin Compose License

一款简洁优雅的中国地图足迹记录应用,使用 Jetpack Compose 构建

功能介绍 • 截图预览 • 安装说明 • 技术栈


✨ 功能特性

🗺️ 交互式地图

  • 三级地图视图:支持省级、市级、县级三级地图展示
  • 自定义地图渲染:基于 Canvas 的高性能地图渲染引擎
  • 手势操作:支持双指缩放(最大20x)、拖拽平移、单击选择、双击下钻
  • 智能联动高亮:访问子区域自动高亮父区域(如:访问天河区则广东省、广州市自动显示已访问)

👣 足迹管理

  • 多级别记录:支持记录省份、城市、区县三级足迹
  • 足迹详情:记录访问日期、添加备注信息
  • 数据导入导出:支持 JSON 格式数据备份与恢复
  • CSV 导出:方便的数据分析导出

📊 数据统计

  • 联动统计:自动统计已访问的省份、城市、区县数量
    • 访问1个区县 → 区县+1、城市+1、省份+1
  • 实时更新:添加足迹后统计数据自动刷新

🎨 界面设计

  • Material Design 3:采用最新的 Material Design 设计规范
  • 暗色模式:支持跟随系统深色模式
  • 流畅动画:精心设计的页面切换和交互动画

📸 截图预览

地图主页 足迹列表 设置页面
地图浏览 足迹管理 数据统计

📦 安装说明

方式一:下载 APK

从 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!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

📄 开源协议

本项目采用 MIT 协议开源。


👨‍💻 作者

PeterZhong - GitHub


🙏 致谢


如果这个项目对你有帮助,请给一个 ⭐️ Star

Made with ❤️ by PeterZhong

About

Record places visited in China

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages