2013-03-27 66 views
0

我需要一些关于位置跟踪的说明,我使用下面的代码片段获取当前用户位置,在我的代码中,我用一分钟的时间来调用位置监听器。 每次我得到不同的位置值,我不会移动/打扰设备,设备保持在桌子上,我不明白为什么会发生,是否有任何问题在我的代码或我需要做一些事情请指导我,这在此先感谢,在使用GPS获取地理位置时的android问题

locationManager = (LocationManager) HomeActivity.this 
       .getSystemService(Context.LOCATION_SERVICE); 
     locationListener = new LocationListener() { 
      public void onLocationChanged(Location location) { 

       currentLatitude = Double.toString(location.getLatitude()); 
       currentLongitude = Double.toString(location.getLongitude()); 
      } 

      public void onStatusChanged(String provider, int status, 
        Bundle extras) { 
      } 

      public void onProviderEnabled(String provider) { 
      } 

      public void onProviderDisabled(String provider) { 
      } 
     }; 

     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
       60000, 0, locationListener); 
} 
+0

不同的位置值有多接近? – 2013-03-27 18:17:07

+0

你在一个封闭的区域?如果这样可以使用A-GPS功能,它为您提供可能浮动的蜂窝位置数据。你是否在清单中设置权限? – 2013-03-27 18:17:36

+0

@MikeSchwartz:我得到的数值差异最大,所以它会在下一次街道第一次在另一条街上指出第一次,但设备位于同一位置。 – Aerrow 2013-03-27 18:27:16

回答

0

这对于GPS是正常的:
的cooridnates表示,double或float变量将有一个分辨率一些厘米或毫米。
但有效准确度要低得多: 对于天空来说,(外)10米经常发生,最多可能发生30米。

在办公室内,您的位置会很大,最高可达50-60米,如果您松动GPS并且手机切换到手机信号塔位置,可能会发生高达1000米的移动。

这取决于GPS应用程序,但每个GPS应用程序必须根据其需要过滤GPS位置 。

(设备移动时GPS更准确)

+0

所以你建议在我的位置输入距离听众对吗? – Aerrow 2013-03-28 08:59:53

+0

这将是最简单的解决方案,否则你必须开发自己的距离过滤器。我不知道聆听者的距离过滤器有多好。如果我的回答是有帮助的,我会自己试穿我自己的 – AlexWien 2013-03-28 11:31:20

+0

@Aerrow,convider upvoting和or accepting – AlexWien 2013-06-06 20:24:05