Skip to content

GPS 轨迹验证规则

适用于医废转运、巡检、配送等需要路线合规与轨迹风控的场景。

规则文件内容

请复制以下内容,保存为 .cursor/rules/gps-trajectory-validation.mdc

markdown
---
description: GPS 轨迹验证、偏离告警与停留异常业务规则
globs: src/modules/trajectory/**, src/modules/gps/**, src/modules/transfer/**
---

# GPS 轨迹验证业务规则

## 1. 核心原则
- **路线优先**:轨迹必须围绕计划路线运行,偏离要可量化。
- **异常可判定**:速度异常、跳点、长时间停留必须有阈值。
- **告警分级**:告警分 `warning` / `critical`,避免误报淹没。

## 2. 偏离检测规则

### 2.1 距离阈值
- `distance_to_route <= 50m`:正常
- `50m < distance_to_route <= 100m``warning`
- `distance_to_route > 100m``critical`

### 2.2 连续偏离判定
- 连续 3 个采样点超过 `50m`,判定“有效偏离”。
- 单点偏离不直接触发工单,仅记录轨迹事件。

```ts
type DeviationLevel = 'normal' | 'warning' | 'critical';

function getDeviationLevel(distanceToRoute: number): DeviationLevel {
  if (distanceToRoute > 100) return 'critical';
  if (distanceToRoute > 50) return 'warning';
  return 'normal';
}

3. 速度与跳点规则

3.1 速度合理性

  • 步行/推车场景建议速度区间:1 ~ 10 km/h
  • 低于 1 km/h 或高于 10 km/h 标记异常速度事件。

3.2 跳点检测

  • 若相邻两点 distance > 100mdelta_time < 10s,判定为跳点。
  • 单任务跳点次数 > 3,标记为可疑轨迹并触发审核。

4. 时间窗口与停留规则

4.1 时间窗口

  • 起止时间偏差不超过 30 分钟为正常。
  • 超出窗口但不超过 60 分钟:warning
  • 超过 60 分钟:critical

4.2 异常停留

  • 半径 < 10m 且持续停留 > 10 分钟:异常停留
  • 停留 > 20 分钟:严重停留,触发 critical 告警

5. 告警与闭环规则

  • critical 告警:实时通知调度员并创建异常处置单。
  • warning 告警:累计 3 次自动升级 critical
  • 任务结束后必须输出 trajectory_validation_report(偏离、跳点、停留、时间窗口)。

6. 数据模型约束

  • trajectory_points 必须包含:task_id, lat, lng, sampled_at, accuracy
  • route_plans 必须包含:task_id, polyline, start_eta, end_eta
  • trajectory_violations 必须包含:task_id, violation_type, level, occurred_at, distance_or_duration

7. 实施注意事项

  • 采样建议 10~30 秒,避免过密导致噪声放大。
  • GPS 精度 accuracy > 50m 的点默认降权处理。
  • 隧道/电梯等弱信号区域允许短时容错,不直接判违规。

## 适用场景

- 医废转运轨迹合规
- 巡检路线偏离监控
- 配送路线与时效核验

基于 AI 辅助开发,快速、灵活、可靠