如何使用融合位置正确获取准确位置

时间:2019-11-10 23:59:59

标签: android

我正在开发一个购物应用程序,购物完成后,您将继续提供送货地点。

在这里,我有多个问题只是指导,因为我无法为我的问题找到可靠的答案:

1)fusionLocationProviderClient是最好的方法吗?而且它的精度够吗?还是我需要继续检查准确性?

2)whatsapp应用程序使用什么方法?您只需等待地图加载更多内容即可将精度降低到5米,怎么办?

3)如果我只需要交货地点,那是否意味着我应该使用最近的已知地点,或者我必须使用位置更新。

我是初学者,请先感谢您的指导。

1 个答案:

答案 0 :(得分:1)

1)是的,出于多种原因,FusedLocationProvider是最佳选择。您始终可以使用LocationManager,但是您的应用程序将在“最近的位置请求”部分中被列为高耗电量的位置应用程序。另外,LocationManager将必须专门为您的应用唤醒GPS芯片,而不是可能重新使用系统已经拥有的位置数据。至于使用FusedLocationProviderClient时的准确性,请在设置PRIORITY_HIGH_ACCURACY时将优先级设置为LocationRequest,并将快速间隔设置为约100ms。有关详情,请参见LocationRequest

准确性取决于请求的频率(最快的间隔)和来源。将根据您设置的优先级自动选择信号源。如果设置了PRIORITY_NO_POWER,则可能仅使用手机信号塔数据来提供城市级的精度,但如果设置了PRIORITY_HIGH_ACCURACY,则将使用GPS芯片来获得最大的精度。这始终是电池使用量和所需精度之间的折衷。 例如:

locationRequest = new LocationRequest();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(UPDATE_INTERVAL);
locationRequest.setFastestInterval(FASTEST_INTERVAL);

2)不知道Whatsapp使用什么-可能是。通过将位置提供程序设置为高精度模式,可以通过两种方法实现5m的精度(现代手机上的商用GPS芯片可以达到1-3m的精度)。但是,Google建议使用融合位置。

3)不能保证最近的已知位置是准确的,也不是保证它不能为空。它提供了设备在使用过程中设法获得的“最新已知”位置。这可能已过时且不准确。因此,如果您需要准确的位置,则绝对需要获取位置更新。

有关如何开始使用FusedLocationProviderClient进行连续位置更新的信息,请参见this