Android - 位置管理器 vs 融合定位服务

8

我尝试了Fused Location(GoogleApiClient),但在获取位置时不够准确,即使我要求新的位置,它也给出了我之前的位置。我请求了10次(以尽可能提高准确性),但在4-6次后它就停止请求了,而且这些位置信息非常不准确(误差为881米)。

另一方面,使用LocationManager时,它总能更或多或少地给出我的位置信息,从未无缘无故地停止工作,并且总体上更加稳定。

那么Fused Location比Location Manager更好在哪里呢?

2个回答

1
奇怪!!!融合定位应该更快,提供更准确的位置信息。
确保您正在请求位置更新。
LocationServices.FusedLocationApi.requestLocationUpdates(
    mGoogleApiClient, mLocationRequest, this
);

代替获取最后已知位置。
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
    mGoogleApiClient
);

而且您正在使用LocationRequest.PRIORITY_HIGH_ACCURACY(GPS)。

Fused LocationLocation Manager之间的主要区别在于后者不依赖于Google Play服务


你刚刚给了我使用LocationManager的另一个理由 :) 我按照你所写的做了,融合定位确实更快,毫无疑问,但我寻求的是准确性,而不是速度。我站在窗户附近(部分室内)。我在融合定位和位置管理器的OnLocationChanged中放置了调试代码,前者在精度达到881时停止了。而位置管理器只有在我告诉它停止请求后(10次之后)才停止,并且精度为39米,位置完美! - Amos
“Fused Location” 更加精确......我两种都用过,我发现 “Fused Location” 应用启动后立即获取位置,而使用“位置管理器”我需要等待 2-5 分钟。不过,“位置管理器”更容易上手。至少要让你的“Fused Location” 代码正常工作。 - j4rey
我站在一个地方请求我的位置,它是正确的。当我走路时尝试相同的操作,位置与之前相同。我认为我没有正确地走路,所以关闭了我的应用程序,走了200米并重新打开它再次尝试。第一次,给了我之前的位置(200米之前),再次尝试,给了我当前的位置。 - Amos

-3

在新的手机上或者用户从未使用过google.maps获取方向时,融合定位无法工作。

要使融合定位正常工作,您必须要求用户打开一次Google地图并获取我的位置。但是一旦完成这个步骤,融合定位就是最好的选择。

但是对于任何应用程序中的位置查找,我们可以使用mylocation层,即使手机或用户从未接触过地图,也可以提供准确的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接