在我的应用中,我需要跟踪用户位置。为此,我使用的是FusedLocation
,每隔10秒就会从中询问一次位置。不幸的是,返回的位置的精度为500.0米或164O英尺。在Android FusedLocation
doc中,规定
精确到几英尺的位置更新
我的请求设置为:
LocationRequest locationRequest = new LocationRequest();
locationRequest.setSmallestDisplacement(10);
locationRequest.setInterval(30000); // 30 s
locationRequest.setFastestInterval(10000); // 10 s
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
此外,我还要征求粗略地点和精细地点的允许。
如何获得更好的准确性?
答案 0 :(得分:0)
也许您可以尝试通过NETWORK_PROVIDER
询问位置,这有助于我解决用户最后一次知道的位置的问题。
这是我的处理方式:
LocationManager locationManager;
locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, locationListener);
Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
LatLng userLocation = new LatLng(lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude());
让我知道这是否对您有所帮助:)
最诚挚的问候,
Dimitar Georgiev