Google 提供了融合位置提供者 API 来获取位置坐标。根据文档,API 在内部轮询来自不同提供商(GPS、Wifi、蜂窝网络)的位置数据并提供最佳位置。但是,在高精度模式下,我收集了以下信息。在此测试中,GPS 始终处于开启状态。
Latitude: 12.8560136
Longitude: 80.1997696
User Activity: IN VEHICLE
Speed: 21.810165 mph
Altitude: -83.0
Accuracy: 12.0
当我在地图上看到这个点时,这些点不在路上。他们离马路稍远。其他具有相同精度的点绘制在道路上。当我完全放大并看到时,一些点稍微远离行驶的道路路径。
我想要准确的信息。它的点必须在道路路径中。
我使用了Fused Location API来获取位置信息。
mGoogleApiClient = new GoogleApiClient.Builder(mContext)
.addApi(LocationServices.API).addConnectionCallbacks(this)
.addOnConnectionFailedListener(this).build();
分享你的建议。如果我使用位置管理器,它将解决我的问题。而且我只需要消耗更少的电池。Fused API 保证它只消耗更少的功率和更高的效率。
Fused Location API 也有以下问题,
- 无法获得卫星计数。
- 始终返回 FUSED 提供程序。不完全给出哪个提供商(GPS 或网络)返回位置信息。
- 当两个提供商都不可用时,您永远不会通知。当没有提供者可用时,它不会返回任何值。要检查供应商的可用性,我们需要单独向位置管理器注册。这会消耗更多的电量。
请帮助我。提前致谢。