如何获得更准确的GPS位置?

时间:2011-09-07 01:21:57

标签: android listview history

我有一个可以获取用户gps位置的应用。问题是现在它有点不准确(它显示我在20-60米的不同建筑物)

这是我的代码

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);

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

1 个答案:

答案 0 :(得分:2)

GPS芯片提供的每个位置更新都具有准确度值。你应该考虑丢弃超过阈值的那些。

然而,在室内GPS难以获得信号,因此如果它甚至设法锁定,准确性将会降低!