我已在我的 Nokia N73 上安装了 Google map Java 2 ME 应用程序它支持位置 API (JSR 179),但没有内置 GPS 传感器。 “我的位置”功能正常工作,并且能够精确定位我在城市中的位置。
当我尝试访问CellID, LAC时和其他相关数据,我得到了空值。那么 map 如何计算我的位置呢?是因为他们的应用程序是用证书签名的吗? (我的不是)
最佳答案
它的作用是测量该区域内 WiFi、3G 和 GSM 基站/接入点的信号强度。由于所有 WiFi 接入点都有唯一的 MAC 地址,并且 3G 和 GSM 基站也有唯一的标识,因此它现在可以根据强度知道您靠近哪些基站以及大约距离它们有多近。
现在有几种方法可以找到距离。如果它知道接入点/基站在哪里,那么它可以根据信号强度对您的位置进行三角测量。为此,它需要能够访问至少 3 个 AP/BS。对于 GSM,它还可以使用定时器提前,它可以估计您距基站的距离,精确度约为 1 公里。有了 3G 就更好了。
另一种方法(Google 和其他公司使用)是将您的所有信号强度数据发送到服务器。如果您有 GPS,那么您的 GPS 信息也会一起发送。然后,服务器可以构建不同坐标处的不同 AP/BS 的信号强度图。由于您没有 GPS,它现在会比较您传递的信号强度,并尝试在其数据库中找到最接近的匹配,然后找到该最近点的位置。
关于java - Google 手机 map "My Location"功能如何运作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1351542/