Skip to content
WLOC

系统原理 · 证据链 · 恢复

WLOC 测试的是哪一层定位信号?

WLOC 测试的是设备上的一条限定网络定位响应链路;它不会写入 GPS 硬件,也不会全局覆盖 Core Location。诊断会记录链路实际观察到的证据,同时说明哪些结果仍由 iOS 和目标 App 决定。

一条可观察、可恢复的测试链路

WLOC 将地图链接或经纬度标准化为 WGS84,把测试目标与路线状态保留在设备端,并通过兼容客户端执行限定的网络定位响应测试。设置写入、请求、响应修改与恢复都有时间证据;GPS、定位权限、App 缓存、账号与服务端规则则保持独立。

把真实地图输入变成结构化坐标

解析器接受直接经纬度、Apple Maps、Google Maps、高德和百度等常见链接。它从 URL、查询参数或页面响应中提取地点名称和坐标,并返回来源、置信度、原始坐标系与警告。

输入 https://maps.google.com/.../@37.795490,-122.393700 输出 source=google_maps · system=WGS84 · confidence=0.94

  • 输入长度受限,坐标必须在纬度 ±90、经度 ±180 的合法范围内。
  • 短链最多跟随有限次数跳转,并拒绝访问本机、内网和云元数据地址。
  • 无法识别时返回明确错误,不会猜一个看似合理的地点。

内部统一使用 WGS84

不同地图可能展示 WGS84、GCJ-02 或 BD-09。WLOC 保留原始坐标和值,同时把内部目标统一到 WGS84,并将结果保留到小数点后 6 位,便于收藏、路线和回归测试复用。

original 31.230416, 121.473701 · GCJ-02 canonical 31.xxxxxx, 121.xxxxxx · WGS84

  • 高德及中国大陆语境下的部分地图输入按 GCJ-02 处理。
  • 百度输入按 BD-09 处理,并经过 GCJ-02 转换到 WGS84。
  • 中国大陆范围外跳过国内坐标偏移;转换结果会提示可能存在米级误差。

收藏、路线和配置默认留在 iPhone

WLOC 将当前目标、收藏、路线、设备配置、诊断事件和设置编码为 JSON,原子写入 App 的 Application Support 目录。重新打开 App 后会从该快照恢复,不需要创建云端账号。

  • 收藏地点和路线不是默认上传到可搜索的坐标历史。
  • 重置或卸载 App 会移除本机快照;导出由用户主动触发。
  • 解析和转换请求只为实时响应服务,页面会明确区分本机数据与官网分析数据。

目标坐标进入受支持的测试链路

WLOC 根据当前目标和设备配置准备官方设置资源。在兼容且已获授权的环境中,保存的目标坐标优先于默认值;没有目标时,链路保持直通,不替换真实网络定位结果。

mode=active → 使用已保存测试目标 mode=route → 使用当前路线节点 mode=passthrough → 保留真实网络定位结果

  • 这是网络定位测试链路,不是对 GPS 接收器或 Core Location 的全局写入。
  • 静态目标用于单点状态;路线会按节点、时间和暂停状态推进。
  • 目标 App 是否采用该结果,仍取决于自身权限、缓存、账号和服务端判断。

诊断检查的是整条链路,而不是一个开关

诊断先检查官方 Worker 是否可达,再检查设备设置、当前模式、目标坐标、路线状态,以及已记录的请求与 patch 时间。这些时间只能说明受支持链路观察到了什么;必须将 patch 时间与目标写入时间比较,才能判断它是否属于当前证据。缓存与目标 App 表现仍需另行人工核对。

  • 服务健康检查会返回环境和版本,避免把服务不可用误判为定位失败。
  • 设备状态区分 active、route 与 passthrough,并记录最近的保存、清除、请求和结果时间。
  • 路线运行但尚未出现请求,或已观察请求但结果未确认时,会给出不同警告。

恢复不是附加功能,而是测试闭环

先停止并清除所有活动路线,再清除静态目标。只有模式为 passthrough、当前目标与路线都为空,并且清除后出现新的直通证据,恢复才算已经验证。随后需要重新打开目标 App,确认旧城市、旧围栏或附近列表没有继续来自缓存。

  • WLOC 可以清除自身目标和路线状态,但不能强制关闭其他 App。
  • 它不能替 iOS 清理系统级 locationd 缓存。
  • 完整证据应同时包含测试状态和恢复后的真实状态。

隐私与安全边界

技术透明也包括说明数据去哪里、哪些请求会离开设备,以及哪些能力明确不提供。

  • 收藏、路线、设备配置和诊断快照默认保存在本机 App 目录。
  • 官方 Worker 处理解析、转换、健康检查和设置生成,不默认建立可搜索的明文坐标历史。
  • WLOC 可能按隐私政策另行发送粗粒度的第一方产品事件;这些事件不包含精确坐标或原始地图链接。
  • 外部地图链接解析限制跳转次数,并阻止访问本机、内网和元数据地址。
  • WLOC 不承诺绕过 App 权限、风控、服务条款或法律限制。

为什么坐标系会造成“看起来改错了”

同一个地标在不同坐标系下可能出现明显偏移。WLOC 同时保留原始值和标准值,让团队能判断问题来自输入、转换、底图还是目标 App。

坐标系常见来源WLOC 的处理
WGS84GPS、Google 全球坐标、通用经纬度作为内部标准坐标直接保存。
GCJ-02高德及中国大陆常见地图数据在中国大陆范围内转换为 WGS84,并保留原始值。
BD-09百度地图先转换为 GCJ-02,再转换为 WGS84。

为什么不同 App 的结果仍可能不同

Apple 说明 iPhone 定位会综合 GPS、Wi-Fi、蜂窝网络和蓝牙;每个 App 还管理自己的定位权限。WLOC 只负责它能观察和验证的测试层。

影响层可能看到的现象应该如何验证
GPS 与传感器融合室外强 GPS 可能使最终位置与网络测试结果不同。在低风险环境对比室内/室外,并记录诊断和时间。
iOS 权限与精确位置拒绝权限、仅一次或关闭精确位置会改变目标 App 行为。在系统设置确认该 App 的权限,再重复相同测试。
目标 App 缓存页面仍显示旧城市、旧围栏或旧附近列表。完全重新打开目标 App,并核对请求时间与后台记录。
账号与服务端规则同一坐标在不同测试账号得到不同内容或风控状态。只使用测试账号,并把账号、环境和期望结果写入证据。
IP 与区域配置内容区域可能来自网络出口而不是坐标。把 IP 区域和坐标测试拆开,不要把两者当成同一个开关。

如何阅读诊断结果

已记录的 patch 时间只能证明兼容的网络定位响应曾在该时间被修改。请将它与目标写入时间比较;它不会自动证明当前目标已经被修改,也不能证明目标 App 采用了该信号。

影响层可能看到的现象应该如何验证
绿色链路已确认服务、设备设置、请求和结果有足够证据。仍需在目标 App 内核对业务状态。
黄色链路部分确认常见于等待首次请求、路线未触发、缓存未刷新或 GPS 影响较强。
红色基础链路未通过先修复服务访问或设备设置,再继续测试;不要用重复点击掩盖根因。

这套技术是否适合你的场景?

下载前先按测试目标判断,能减少无效安装,也让真正需要定位 QA 的团队更快开始。

影响层可能看到的现象应该如何验证
适合自有 App、测试账号、预发布环境、审核演示、路线与区域内容 QA。从公开低风险地点开始
需要验证第三方 App、复杂缓存、强 GPS、IP 与坐标混合判断。先运行诊断和恢复演练
不支持虚假考勤、欺骗他人、游戏作弊、规避风控或所谓所有 App 全局覆盖。不要用于未授权环境

三条链路,一次可验证的测试

  1. 输入

    地图链接或经纬度

  2. 解析

    识别来源与原始坐标系

  3. 规范

    统一保存为 WGS84

  4. 准备

    生成受支持的测试设置

  5. 验证

    检查请求、结果与路线状态

  6. 恢复

    停止并清除路线与目标;确认直通

理解原理后,从低风险测试开始

打开 WLOC,选择一个公开地点,保存目标、运行诊断,再完整执行一次恢复。只有测试与恢复都可复现,链路才真正可信。

Frequently asked questions

WLOC 会直接修改 iPhone 的 GPS 硬件吗?

不会。WLOC 面向受支持的网络定位测试链路,不写入 GPS 接收器,也不对 Core Location 做全局覆盖。

为什么地图上看到目标点,其他 App 仍可能是原位置?

目标 App 可能使用强 GPS、缓存、不同权限、IP 区域、账号规则或服务端校验。应同时检查诊断时间线和目标 App 证据。

WGS84、GCJ-02 和 BD-09 有什么区别?

它们是不同的坐标表示。WLOC 保留原始坐标,并把内部目标统一为 WGS84;中国大陆相关转换会提示可能存在米级误差。

哪些数据默认保存在本机?

当前目标、收藏、路线、设备配置、诊断事件和设置会作为 JSON 快照保存在 App 的 Application Support 目录。

怎样证明已经恢复正常定位?

停止并清除所有活动路线,再清除静态目标;确认模式为 passthrough、当前目标与路线都为空,并等待清除后的新直通证据。随后关闭 HTTPS 解密并撤销 CA,重新打开目标 App,再核对缓存与真实位置。