iPhone如何在使用它们进行位置估算时学习新的WiFi位置

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

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

通过WiFi进行位置检测的方式与此相反,它将所有可见的WiFi MAC地址发送给苹果公司,并以此位置进行响应。 实际上,他们通过在手机上caching尽可能多的WiFi地址来大量优化。 所以这甚至可以在iPod touch上运行(在某种程度上),而无需任何networking连接。

这个algorithm的一个弱点是MiFi和类似的设备(重新定位WiFi热点)。 目前,Core Location在丢弃明显错误的WiFi位置方面做得不是很好。 例如,在没有GPS接收function的室内展会上,由于有许多MiFi设备,所以要准备好错误的位置更新。

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

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

编辑:

显然这不再是事实。 苹果似乎直接从iOS设备汇总这些数据。 看到评论。