📅 2026-04-16🤖 claude-opus-4
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。