2

我在同一位置得到不同的 Gps 坐标,为什么会发生这种情况。但我需要更改 gps 坐标,仅在 10 米后移动。我怎样才能做到这一点。

这是我的代码。

  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) {}      
    }

我也将这些用于清单文件:

<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" />

我用了这个链接

请任何人提出如何解决我的问题的建议。

提前谢谢你。

4

1 回答 1

3

当您使用 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);

此外,您需要在 AndroidManifest.xml 中声明以下 GPS 权限

<uses-permission android:name="android.permission.ACCESS_GPS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
于 2012-08-25T08:32:49.147 回答