12

我知道 iPhone 可以并且确实使用 WiFi 邻近度来获取大致位置。这显然只有在天空中的某个数据库知道该 WiFi 热点的大致位置时才会发生。我的问题是热点如何进入该数据库?每当 iPhone 具有相当准确的 GPS 位置并检测到 WiFi 时,它是否会自动添加,或者是否有一些手动或编程方式添加热点?

4

3 回答 3

12

Apple 从 iOS 3.2 开始使用他们自己的数据库(在此之前他们使用 Skyhook Wireless)。这通过启用 GPS 的 iOS 设备向 Apple 发送 WiFi MAC 地址来实现。因此,如果设备有 GPS 定位,它会自动将它看到的所有 WiFi MAC 地址与 GPS 检测到的位置一起发送给 Apple。除了主核心位置开关外,没有其他选项可以更改此行为。用户必须接受 EULA 中看到的 WiFi MAC 地址的这种传输。

通过 WiFi 进行位置检测的工作方式相反,将所有看到的 WiFi MAC 地址发送给 Apple,Apple 会以该位置响应。实际上,他们通过在手机上缓存尽可能多的 WiFi 地址来极大地优化这一点。所以这甚至在没有任何网络连接的情况下(在某种程度上)在 iPod touch 上也有效。

该算法的一个弱点是 MiFi 和类似设备(重新定位 WiFi 热点)。目前,Core Location 在丢弃明显错误的 WiFi 位置方面做得并不好。例如,在没有 GPS 接收的室内贸易展览会上,由于那里有许多 MiFi 设备,请准备好获取错误的位置更新。

回答您关于手动添加 WiFi 热点的问题:不,没有办法做到这一点。只需使用运行 iOS 3.2 或更高版本且支持 GPS 的 iPhone/iPad,MAC 地址最终将进入数据库。根据我的经验,这种情况发生得相当快。

于 2011-01-31T11:21:20.060 回答
1

iPhone 使用Skyhook Wireless来确定 WiFi 位置。您可以使用他们的提交页面提交您的信息。

编辑:

显然,这不再是真的。Apple 现在似乎直接从 iOS 设备汇总这些数据。见评论。

于 2010-01-26T15:52:06.610 回答
1

在这里复活一个早已死去的线程来报告我刚刚在 Apple 的 Wi-Fi 定位系统以及它如何自我更新中遇到了一个重大的概念缺陷。

我正在一艘游轮上部署一个新的 Wi-Fi 网络,当我们从西班牙的造船厂驶回大西洋回到船的母港时,我们正在调整和调整它。

每当我在下层甲板上并且不在 GNSS 星座的视野范围内时,我 iPhone 上的各种支持定位的应用程序都会恢复到造船厂的位置......看起来当船在干船坞临时来自船厂的地面互联网链接,船上的无数苹果设备尽职尽责地报告了一堆未知的 ESSID 和 BSSID,这些 ESSID 和 BSSID 与设备的 GNSS 位置和 IP 位置相关,大概让苹果对位置有高度的信心. 似乎 ESSID 优先,因为 BSSID 都是全新的。鉴于自从我们航行以来它还没有更新位置,并且位于 GeoIP 标记为位于美国多个位置的卫星互联网链接上,

最重要的是,不要指望 wifi 位置在移动物体上甚至是远程准确的。苹果表示,他们无法将火车、飞机或轮船等移动船只上的 ESSID 列入黑名单。这可能是苹果应该重新设计的东西。如果有一种方法可以在 802.11 信标帧中发送位置,那就太好了。

于 2020-02-10T21:35:11.267 回答