2

我编写了一段代码来了解当我在他的设备上为我的出租车预订应用程序启用定位服务时我的客户(出租车司机)会体验到什么。我在同一个监听器上同时使用网络和 GPS 提供商启用了定位服务。

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
    // God.KM20TIME, God.KM20DISTANCE, (LocationListener) updates);

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, God.KM20TIME,
            God.KM20DISTANCE, (LocationListener) updates);

我的电池用完的速度比平时快得多。我的手机也比平时更热。但我期待的一致性真的很低。我决定不使用 GPS,而只使用网络提供商。我正在构建一个出租车预订应用程序,所以我需要知道出租车大概在哪里。即使我知道出租车在大约 15 分钟后位于大约(300 米)的位置,我也应该很好。所以我想我决定不通过使用这两个提供者来过度设计这个逻辑是正确的。我想知道是否有人可以在这里获得不同的体验?我错过了什么吗?

4

1 回答 1

1

根据我的经验,网络提供商的质量可能会有很大差异。

网络提供商使用 WiFi 和蜂窝塔信息的组合来提供位置信息。

如果您碰巧靠近 Wifi 网络,这在城市化地区很常见,但不是在城市以外,您通常会获得非常好的准确性。

但是,在 Wifi 的范围之外,您将受制于手机信号塔。在这里,精度取决于手机信号塔的质量和功能,以及可用于对您的位置进行三角测量的手机信号塔的数量。

在这些情况下,质量可能会有很大差异不仅在不同地点之间,而且还取决于您使用的运营商、他们的手机信号塔之间的距离,以及他们拥有的手机信号塔的制造和世代。较新的具有更多关于位置的功能,例如可能会自行提供方位。

我的应用程序在瑞典运行,在我们国家的某些地区,运营商可能在非常大的区域内只有一个塔。在这些情况下,所有经纬度定位都直接在塔上,精度甚至高达 20.000 - 30.000 米。

基本上,我的观点是,在使用网络提供商时,如果您不在 Wifi 附近,我会对 300 米的精度非常满意。

关于电池/热量 - 根据您的要求,您可以大量使用时间/距离参数以获得“足够好”的更新频率,而不会对手机造成太多负担。

于 2013-05-23T10:27:43.630 回答