来源:AI开发日志公众号专辑「Build Your Own X With AI」
原文链接:https://mp.weixin.qq.com/s?__biz=MzUxMjg3MjE2OA==&mid=2247485710&idx=1&sn=5c9200fa8027d063a723516b9eaa32a7&chksm=f95c9289ce2b1b9f00bea50422ee5c7a25b601ea1ee82274b9f1bd45e7555f5eec995eb1c8b0#rd
,时长
00:18
GPSMap - GPX 轨迹播放器
一个功能强大的 iOS 应用,用于播放和管理 GPX 轨迹文件,支持 3D 地图视图和轨迹动画播放。
远程仓库
GitHub: https://github.com/buld-your-own-x-with-ai/GPXViewer
Screenshots
应用界面展示
方向指示箭头
当前位置显示为红色箭头,清晰指向运动方向,提供直观的导航体验。
GPS 信息面板
详细的轨迹信息显示,包括时间、海拔、速度等实时数据,支持坐标转换和方向控制。
演示视频
完整的应用使用演示,展示轨迹播放、地图交互和各项功能操作。
功能特性
🎯 核心功能
- GPX 轨迹播放
-
支持播放、暂停、重置轨迹动画
- 3D 地图视图
-
提供沉浸式的 3D 地图体验,支持多种地图样式
- 实时信息显示
-
显示当前位置、海拔、速度、时间等信息
- 可调节播放速度
-
1x-100x 速度调节
📁 GPX 文件管理
- 文件导入
-
支持从其他 App 分享 GPX 文件到本应用
- 文件列表
-
查看所有已保存的 GPX 文件
- 文件操作
-
重命名、删除、加载 GPX 文件
- 文件信息
-
显示文件大小、添加日期等详细信息
- 手动导入
-
通过文档选择器手动选择 GPX 文件
🗺️ 地图功能
- 多种地图样式
-
标准、卫星、混合地图
智能轨迹可视化
:
已经过的轨迹显示为灰色
未经过的轨迹显示为彩色渐变
- 方向指示箭头
-
当前位置显示为红色箭头,指向运动方向
- 起终点标记
-
清晰标识轨迹起点和终点
- 实时跟踪
-
当前位置和方向实时更新
- 坐标转换
-
支持坐标系转换功能
- 保持方向
-
可选择保持当前地图方向,避免频繁旋转
- 信息面板
-
可收起/展开轨迹信息显示面板
使用方法
导入 GPX 文件
方法1: 从其他 App 分享
在其他 App 中(如邮件、文件管理器等)找到 GPX 文件
点击分享按钮
选择”GPSMap”应用
文件将自动导入并可立即播放
方法2: 手动导入
打开应用
点击右上角的列表按钮(📋)
在 GPX 文件列表页面,点击左上角的”+”按钮
从文档选择器中选择 GPX 文件
文件导入成功后会自动加载
管理 GPX 文件
点击主界面右上角的列表按钮进入 GPX 文件管理页面
在文件列表中可以:
- 加载文件
-
点击文件名或点击菜单中的”加载”
- 重命名
-
点击菜单中的”重命名”
- 删除文件
-
点击菜单中的”删除”
播放控制
- 播放/暂停
-
点击底部的播放按钮
- 重置
-
点击重置按钮回到轨迹起点
- 调节速度
-
使用底部的速度滑块调节播放速度
- 切换地图
-
点击右上角的地图按钮切换地图样式
- 保持方向
-
在轨迹信息面板中开启”保持方向”开关,地图将不再根据运动方向自动旋转
- 收起信息
-
点击右上角的眼睛图标可以收起/展开轨迹信息面板
技术特性
坐标转换
支持不同坐标系之间的转换
可在轨迹信息面板中开启/关闭坐标转换功能
用户体验优化
- 方向控制
-
新增”保持方向”选项,避免地图方向转动过于频繁,提供更稳定的观看体验
- 界面简化
-
支持收起轨迹信息面板,获得更大的地图显示区域
- 直观控制
-
所有主要功能都可通过简单的点击或开关操作完成
视觉反馈
:
当前位置使用箭头图标,清晰指示运动方向
轨迹颜色区分已走过和未走过的路径
提供更直观的进度视觉反馈
文件存储
GPX 文件安全存储在应用沙盒中
支持文件元数据管理
自动清理无效文件引用
性能优化
高效的轨迹点处理
流畅的动画播放
内存优化的地图渲染
项目配置
支持的文件类型
应用支持以下 GPX 文件格式:
.gpx
文件
MIME 类型: application/gpx+xml
UTI: com.topografix.gpx
系统要求
iOS 18.5+
Xcode 16+
Swift 5.0+
开发说明
主要组件
- TrackViewModel
-
核心业务逻辑和GPX文件管理
- ContentView
-
主界面和地图显示
- GPXListView
-
GPX文件列表管理
- DocumentPicker
-
文档选择器组件
- GPXParser
-
GPX文件解析器
文件结构
GPSMap/
├── GPSMapApp.swift # 应用入口
├── ContentView.swift # 主视图
├── TrackViewModel.swift # 视图模型
├── GPXListView.swift # 文件列表视图
├── DocumentPicker.swift # 文档选择器
├── GPXParser.swift # GPX解析器
└── Assets.xcassets/ # 资源文件
数据存储
GPX 文件存储在 Documents/GPXFiles/ 目录
文件元数据保存在 UserDefaults 中
支持文件完整性检查
许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
贡献
欢迎提交 Issue 和 Pull Request 来改进这个项目。
注意: 为了完整支持从其他 App 导入 GPX 文件,需要在 Xcode 项目设置中配置文档类型支持。具体配置方法请参考 iOS 开发文档中的”Document Types”部分。