2012-08-25 38 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

相关问题