首页 / Go 平台(cloud-go) / 定位轨迹:geosvr + tripsvr

定位数据链路

设备 GPS 原始点(NATS GPS_RAW_V1)
        ▼
   geosvr:质量过滤 → 纠偏/抽稀 → TDengine 异步写入 → 在线状态(Redis ZSET)
        │
        ├─► gRPC 查询:最新位置 / 轨迹 / DAU
        ▼
   tripsvr:离线行程检测(行驶/停留)→ 行程摘要表(Java 前端地图回放)

geosvr 定位轨迹

geosvr 是 GPS 业务平台的核心服务之一,内部结构:

目录职责
internal/mqNATS 消费:GPS_RAW_V1(原始点)、GPS_QUALITY_V1(质量事件);cleanPublisher 清理发布;压力测试覆盖
internal/filter / quality点位质量过滤与清洗(纠偏、抽稀、异常剔除)
internal/storagerawAsyncWriter 异步批量写 TDengine、sqlWriter、admission 控制
internal/tdengineTDengine 写入与查询封装
internal/statsDAU 等统计
internal/logicgRPC 查询逻辑(最新位置、轨迹、DAU)
  • 设备在线状态维护在 Redis ZSET(时间有序),供在线/离线判断。
  • 支持进程内直连(geodirect),可独立部署或嵌入 apisvr。

tripsvr 行程检测

  • 纯后台计算服务,基于 TDengine GPS 数据离线检测设备行程(行驶/停留)。
  • 写入行程摘要表,供 Java 侧前端地图回放查询。
  • 内部含 filter(过滤)、stats(统计)、trip(行程算法)、model(数据模型)。
离线补传数据必须按设备时间戳排序入库,否则会影响行程切分与里程计算;行程结果异常时先核对 TDengine 原始点。

对外契约

geo.protogeosvr/proto/geo.proto)定义核心消息:

  • Point:经纬度、速度、航向、时间戳
  • TimeRange:时间范围查询
  • DeviceLocationReq/Resp:设备最新位置
  • TrajectoryReq:轨迹查询