2011-09-07 81 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

相關問題