📅 2026-04-16🤖 claude-opus-4wifipositioningfingerprinttrilaterationcrowdsource

WiFi 定位原理

1. 三大流派

1.1 三边测量(需要知道 AP 位置)

已知:AP₁位置、AP₂位置、AP₃位置 + 各自 RSSI
  ↓ RSSI → 距离
求解:手机位置(和 BLE 定位原理完全一样)

AP 位置必须已知。企业级部署(Cisco、Aruba)会记录每个 AP 的安装坐标。

1.2 指纹法(不需要知道 AP 位置)★ 更常用

离线:在每个格点采集 "能看到哪些AP、RSSI各是多少"
  → 建立指纹库:{位置 → RSSI向量}

在线:手机扫描当前能看到的 AP 和 RSSI
  → 在指纹库中找最匹配的 → 返回对应位置

不需要知道 AP 在哪——只需要"这个 RSSI 模式对应这个位置"的映射。

1.3 众包指纹(Google/Apple 的做法)

海量用户手机同时有 GPS + WiFi
  → 用户走路时自动上传 {GPS位置, 可见AP列表, RSSI}
  → 服务器积累出全球 WiFi 指纹库
  → 后续用户即使没有 GPS,扫 WiFi 就能查到自己位置

AP 位置不需要精确已知,但 Google/Apple 通过众包数据可以反推 AP 的大致位置。

2. 手机实际用的是哪种?

手机 OS(Android/iOS)用的是流派 3 的变体:

手机扫描到 WiFi AP 的 MAC 地址(BSSID)
  → 发给 Google/Apple 服务器
  → 服务器查众包数据库,返回 "这些AP附近的位置大概是..."
  → 手机融合 GPS + WiFi + 蜂窝 → 输出最终位置

3. AP 实际位置是否已知?

场景 AP 位置是否已知 定位方法
企业部署(Cisco/Aruba) ✅ 精确已知 三边测量
指纹法 ❌ 不需要 RSSI 模式匹配
Google/Apple 众包 ⚠️ 可反推大致位置 众包指纹
普通家用路由器 ❌ 未知 依赖众包

指纹法比三边测量更实用的原因:不需要任何基础设施信息。

4. 与本项目的关系

本项目完全不涉及 WiFi 定位的内部实现。

好心人手机内部(不是我们的事):
  GPS卫星 / WiFi AP / 基站 → 手机OS融合 → 好心人位置 I_i + accuracy

本项目输入(我们拿到的):
  {I_i, accuracy_i, RSSI_i}  ← 好心人位置 + 精度 + BLE信号强度

本项目求解(我们做的事):
  argmin Σ w_i (f(RSSI_i) - ‖x - I_i‖)²  → 目标位置 x

好心人位置 I_i 对我们是输入数据,不管它是 GPS 来的还是 WiFi 来的。我们只关心它的精度(accuracy 字段),用于设定权重 w_i。