首页 / Go 平台(cloud-go) / 定位轨迹:geosvr + tripsvr
定位轨迹:geosvr + tripsvr
GPS 原始点消费、TDengine 存储、轨迹查询、在线状态与行程检测。
定位数据链路
设备 GPS 原始点(NATS GPS_RAW_V1)
▼
geosvr:质量过滤 → 纠偏/抽稀 → TDengine 异步写入 → 在线状态(Redis ZSET)
│
├─► gRPC 查询:最新位置 / 轨迹 / DAU
▼
tripsvr:离线行程检测(行驶/停留)→ 行程摘要表(Java 前端地图回放)
geosvr 定位轨迹
geosvr 是 GPS 业务平台的核心服务之一,内部结构:
| 目录 | 职责 |
|---|---|
internal/mq | NATS 消费:GPS_RAW_V1(原始点)、GPS_QUALITY_V1(质量事件);cleanPublisher 清理发布;压力测试覆盖 |
internal/filter / quality | 点位质量过滤与清洗(纠偏、抽稀、异常剔除) |
internal/storage | rawAsyncWriter 异步批量写 TDengine、sqlWriter、admission 控制 |
internal/tdengine | TDengine 写入与查询封装 |
internal/stats | DAU 等统计 |
internal/logic | gRPC 查询逻辑(最新位置、轨迹、DAU) |
- 设备在线状态维护在 Redis ZSET(时间有序),供在线/离线判断。
- 支持进程内直连(
geodirect),可独立部署或嵌入 apisvr。
tripsvr 行程检测
- 纯后台计算服务,基于 TDengine GPS 数据离线检测设备行程(行驶/停留)。
- 写入行程摘要表,供 Java 侧前端地图回放查询。
- 内部含
filter(过滤)、stats(统计)、trip(行程算法)、model(数据模型)。
离线补传数据必须按设备时间戳排序入库,否则会影响行程切分与里程计算;行程结果异常时先核对 TDengine 原始点。
对外契约
geo.proto(geosvr/proto/geo.proto)定义核心消息:
Point:经纬度、速度、航向、时间戳TimeRange:时间范围查询DeviceLocationReq/Resp:设备最新位置TrajectoryReq:轨迹查询