2011-09-07 53 views
0

我有一个应用程序,将获得用户的GPS位置。问题是,现在是有点不准确的(它让我看到不同的建筑20-60m关闭)如何获得更准确的GPS位置?

这里是我的代码

LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
      Criteria criteria = new Criteria(); 
      criteria.setAccuracy(Criteria.ACCURACY_FINE); 
      String bestProvider = locationManager.getBestProvider(criteria, 
        false); 
      LocationListener loc_listener = new LocationListener() { 

       @Override 
       public void onStatusChanged(String provider, int status, 
         Bundle extras) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onProviderEnabled(String provider) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onProviderDisabled(String provider) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onLocationChanged(Location location) { 
        // TODO Auto-generated method stub 

       } 
      }; 
      try { 
       Looper.prepare(); 
       locationManager.requestLocationUpdates(bestProvider, 0, 0, 
         loc_listener); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      Location location = locationManager 
        .getLastKnownLocation(bestProvider); 

我相信我发送位置之前,应该等待至少一个第二.getLatitude()和location.getLongitude()现在等待时间几乎是即时的,但准确性相当不错。我正在使用我的

回答

2

由您的GPS芯片提供的每个位置更新都将具有准确度值。你应该考虑扔掉高于阈值的那些。

但是,室内GPS挣扎得到一个信号,所以准确性会降低,如果它甚至设法锁定的话!

+0

你能告诉我一个获得准确性的例子吗?谢谢 –

+0

这有一个计算最好的修复提供的例子:http://developer.android.com/guide/topics/location/obtaining-user-location.html你可以返回一个返回的位置对象的准确性从它的' Location.getAccuracy()'函数。 – Kurru

相关问题