首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用全球定位系统定位精度仍然很低

使用全球定位系统定位精度仍然很低
EN

Stack Overflow用户
提问于 2014-11-08 11:21:37
回答 1查看 1.2K关注 0票数 0

我在主要活动中有以下代码:

代码语言:javascript
复制
LocationManager mlocMan = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);                    

if (mlocMan.isProviderEnabled(LocationManager.GPS_PROVIDER)) {                      
   LocationListener mlocListener = new LocationManagerHelper(...);
   mlocMan.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,mlocListener);
}           

在位置侦听器中,我有以下内容:(theAccuracy被初始化为-1)

代码语言:javascript
复制
if (theAccuracy == -1 || theAccuracy > loc.getAccuracy()) {
   theAccuracy = Math.round(loc.getAccuracy());
   latitude = loc.getLatitude();
   longitude = loc.getLongitude();        
}
updateTimes++;
if (updateTimes == 3) {
   mLocMan.removeUpdates(this);
   updateTimes = 0;
   //get address for location
   theAccuracy = -1;
}   

意思是,在3次GPS位置更新后,获取最佳准确位置并获取其地址。在模拟器上,我获得了20m的固定精度(我使用DDMS发送长/拉),但这不是真实的生活,所以我尝试使用我的设备,虽然第一次(3次请求)给出了精确的地址(当场),40米的精度,但下一个地址有时更准确,但地址就在附近。我得到的最佳精度是29m (发生过一次),大多数情况下它都在30以上。这是我的全球定位系统(LG G3)的一个问题,还是有任何其他的想法,可以使事情更准确的3-4-5请求?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-08 11:44:37

以下几个原因:

  1. 您的模拟器没有实际的gps硬件,因此它可能正在使用您的ip地址,这就是为什么它看起来是固定的。
  2. 你手机上的GPS硬件必须预热一下。设置轮询的频率一点(每秒更新1次,或半秒),并让它运行几秒钟,然后再进行计数。
  3. 位置管理器支持硬件和网络查找(wifi /蜂窝塔)。不知道如何将提供商设置为您的手机硬件,但如果您使用mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);gps客户端(LocationClient),则非常简单:mLocationRequest= LocationRequest.create();
  4. 你可能是在用你的电脑在门上测试。建筑物肯定会影响gps的精度。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26816551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档