2012-08-25 74 views
2

我得到不同的Gps座標在相同的位置,爲什麼它發生。但是我需要改變GPS座標後才能移動10米。我怎樣才能做到這一點。爲什麼我在NETWORK_PROVIDER的相同位置獲取不同的Gps座標?

這是我的代碼。

private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; 
      private static final float MIN_GEOGRAPHIC_POOLING_DISTANCE = (float)10.0; 


double myLat_Values; 
     double myLog_Vaues; 


locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MINIMUM_TIME_BETWEEN_UPDATES, MIN_GEOGRAPHIC_POOLING_DISTANCE, new MyLocationListener()); 


private class MyLocationListener implements LocationListener { 

     @Override 
     public void onLocationChanged(Location location) { 
      longitude_str = String.valueOf(location.getLongitude()); 
      latitude_str = String.valueOf(location.getLatitude()); 

      Double longitude_number = Double.valueOf(longitude_str); 
       DecimalFormat dec = new DecimalFormat("#.000000"); 
       longitude_message = dec.format(longitude_number); 

      Double latitude_number = Double.valueOf(latitude_str); 
      DecimalFormat decim = new DecimalFormat("#.000000"); 
       latitude_message = decim.format(latitude_number); 

       try 
       { 
        myLat_Values = Double.valueOf(latitude_message); 
        myLog_Vaues = Double.valueOf(longitude_message); 
       } 
       catch(NullPointerException ex) 
       { 
        myLat_Values = 0; 
        myLog_Vaues = 0; 
       } 

    System.out.println("GPS Values Clockout:"+myLat_Values+"-"+myLog_Vaues); 

     }  

    public void onProviderDisabled(String s) {} 
     @Override 
     public void onProviderEnabled(String provider) {} 
     @Override 
     public void onStatusChanged(String provider, int status, Bundle extras) {}  
    } 

還我使用到這些manifest資源配置文件:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

我用這個link

請任何人給一個建議如何解決我的問題。

謝謝您的高級。

+0

刪除ACCESS_MOCK_LOCATION使用許可 – rajpara

回答

2

當您使用NETWORK_PROVIDER時,它會根據您正在使用的網絡服務提供商返回GPS座標。但是,當您使用GPS_PROVIDER時,它將返回基於衛星的GPS座標。

對於Accuracy Criteria,添加以下代碼,

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_HIGH); 
locationManager.getBestProvider(criteria, true); 
,你需要聲明下面的GPS Pe rmission在AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_GPS"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
+0

我嘗試使用上面的權限還是我得到在同一位置不同的GPS座標,當我測試了同一位置的多個時間它給多個GPS座標。爲什麼發生?我需要在同一地點相同的GPS座標,如果在10米後移動,我需要更改這些GPS值。 – suresh

+0

你可以給我你正在獲取的地點的樣本嗎? – Lucifer

+0

lat:17.453443,長:78.386233,lat:17.453654長:78.386255 – suresh

相關問題