Add mock GPS simulator and configurable location sources

This commit is contained in:
2026-03-24 14:24:53 +08:00
parent 0295893b56
commit 2cf0bb76b4
16 changed files with 2575 additions and 122 deletions

View File

@@ -0,0 +1,75 @@
# Mock GPS Simulator
## 启动
在仓库根目录运行:
```bash
npm run mock-gps-sim
```
启动后:
- 控制台页面: `http://127.0.0.1:17865/`
- 小程序接收地址: `ws://127.0.0.1:17865/mock-gps`
- 资源代理: `http://127.0.0.1:17865/proxy?url=<remote-url>`
## 当前能力
- 直接载入 `game.json`
- 自动解析 `map / mapmeta / course`
- 自动切换自定义瓦片
- 自动渲染 KML 控制点
- 一键跳到开始点 / 结束点 / 任意检查点
- 地图点击跳点
- 实时连续发送 `mock_gps`
- 路径编辑
- 上传轨迹文件回放GPX / KML / GeoJSON
- 路径回放
- 速度、频率、精度调节
## 加载自己的地图
推荐方式:
1. 启动模拟器后,打开 `http://127.0.0.1:17865/`
2. 在“资源加载”里填自己的 `game.json` 地址
3. 点“载入配置”
模拟器会自动:
- 读取 `map``mapmeta`
- 切换到你的瓦片底图
- 读取 `course`
- 渲染开始点、检查点、结束点
如果你不想走整套配置,也可以:
- 直接填“瓦片模板”,例如 `https://host/tiles/{z}/{x}/{y}.webp`
- 直接填 `KML URL`
路径回放也支持直接导入轨迹文件:
- `GPX`
- `KML`
- `GeoJSON / JSON`
说明:
- 配置和 KML 是通过本地代理拉取的,所以浏览器跨域问题会少很多
- 如果你的资源需要鉴权,第一版代理还没有加认证头透传
## 真机调试注意
如果小程序跑在手机上,不要用 `127.0.0.1`
把小程序里的 mock bridge 地址改成你电脑在局域网里的 IP例如
```text
ws://192.168.1.23:17865/mock-gps
```
同理,浏览器里的模拟器页面也建议用电脑局域网地址打开,例如:
```text
http://192.168.1.23:17865/
```