您禁用了 WiFi 和 GPS,但仍打开了蜂窝数据。这意味着手机正在与当地的手机信号塔进行通信。Android 使用手机信号塔的地理位置来估计您的当前位置。
每个手机信号塔都有一组 ID 号,用于向手机识别它们。它不断广播其身份,以便手机在移动时可以连接到它。蜂窝塔天线是定向的,每个塔大致服务于三个不同的区域;你可以把它们想象成三个饼状的楔子,手机信号塔位于饼的中心。这些楔子中的每一个都是一个“单元”(这就是该技术得名的地方。)
为这些小区服务的每个无线电都使用一定量的功率进行传输 - 您离发射塔越近,您的手机接收到的信号越强,反之亦然。您的手机使用接收到的信号强度来节省电池电量。手机信号塔越远,手机传输给它的功率就越大。因此,手机总是试图锁定最强的信号,以便它可以使用最少的功率进行传输。一种更有用的看待它的方法是,接收到的信号强度代表到蜂窝塔的粗略距离。
所以现在想象一下那个形状像一个馅饼的单元格,接收到的最强信号离塔最近,而最弱的信号离塔最远。想象一下,在环绕塔的曲线中切出楔形饼,在最近的切片中信号强度强,在最远的切片中信号最弱。它看起来(非常)大致是 WiFi 标志。这些切片中的每一个都代表了地球上的一些小区域,而您正站在其中一个区域中。
如果您在人口稠密的地区(例如城市),您的手机通常会收到来自多个手机信号塔的信号。因此,请想象塔 A、塔 B、塔 C 和塔 D 的重叠切片的交集。这些交点定义了一个越来越小的区域。
那么,Google 是如何知道这些单元格、楔形、切片和交叉点的位置的呢?从十亿部开启 GPS 的 Android 手机中(包括您的手机,当您的 GPS 开启时),不断发送有关他们的 GPS 位置以及他们看到的手机信号塔和信号强度的报告。谷歌已经使用这些数据来绘制出每个单元的位置,以及每个点的大致信号强度。他们的服务器上有一个包含这些信息的巨大数据库;您的手机通过发出列出范围内所有手机信号塔的网络请求来查询该数据库,Google 服务器会以您的估计位置响应。
当然,这都是非常近似的,因为无线电信号实际上并没有以完美的小馅饼楔形传播——它们会从建筑物和汽车上反弹,它们会被树木、墙壁、雾、云和人吸收。每天都有新的基站来来去去,因此无线电发射器的格局也经常发生变化。数以百万计的报告仅生成平均 GPS 坐标。但这没关系,因为即使是不完善的位置数据也足以满足大多数用户的需求。
最后,为了提高准确性,您手机上的 Google Play 定位服务软件会跟踪您手机的最后已知位置,并可以使用它来更好地估计您当前的位置。特别是,最后一个已知位置是对您当前位置的合理估计(根据自上次查询您的位置以来您可能没有移动过的启发式方法);如果这似乎与手机信号塔信息一致,则可能会用于提高您估计位置的准确性。