FusedLocationApi 性能问题:精度似乎上限为 10.0 米
FusedLocationApi Performance Issue: Accuracy seems capped at 10.0 meters
我遇到了一个奇怪的问题,FusedLocationProviderAPI
没有给我比 10.0 米更好的准确度数字。
它开始像正常一样给我一个很高的数字,例如,56 米......24......13......然后保持在 10.0。似乎最多只能给予那么多。
试用Phone 索尼Xperia Z2 & 华为荣耀8
location.getAccuracy() //Seems capped at 10.0 meters
奇怪的是,我收到的准确度数字低至 3.0 米左右,外面天气很好,我不记得更改手机 GPS 选项/也不记得与 GPS 服务相关的任何选项 Class .
我的应用程序依赖于能够获得尽可能高的准确度数字。这里可能是什么问题? Phone 本身?请求的设置?封顶数量的可能原因?
编辑: 试用华为时遇到同样的问题。所以代码似乎有问题?就像在 x 数量的位置请求精度从系统被限制在 10.0 之后?
来自我的 GPS 服务的相关信息:
清单
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
服务
private long UPDATE_INTERVAL = 2 * 1000; /* 10 secs */
private long FASTEST_INTERVAL = 2000; /* 2 sec */
static final int MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 1;
private void requestLocation() {
locationRequest = new LocationRequest();
locationRequest.setInterval(UPDATE_INTERVAL);
locationRequest.setFastestInterval(FASTEST_INTERVAL);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
gac = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
@Override
public void onLocationChanged(Location location) {
locationData = location; //1. Set local field to incoming location
gpsAccuracy = location.getAccuracy(); //2. Est. horizontal accuracy of location, radial, in meters.
}
看起来 10 米是使用 FusedLocationServicesApi 可以获得的最佳近似精度,HIGH_ACCURACY 是优先级。但是,我相信使用 LocationManager 可以获得更好的准确性。看看这篇文章:
http://www.tothenew.com/blog/googles-fused-location-api-for-android/
我遇到了一个奇怪的问题,FusedLocationProviderAPI
没有给我比 10.0 米更好的准确度数字。
它开始像正常一样给我一个很高的数字,例如,56 米......24......13......然后保持在 10.0。似乎最多只能给予那么多。
试用Phone 索尼Xperia Z2 & 华为荣耀8
location.getAccuracy() //Seems capped at 10.0 meters
奇怪的是,我收到的准确度数字低至 3.0 米左右,外面天气很好,我不记得更改手机 GPS 选项/也不记得与 GPS 服务相关的任何选项 Class .
我的应用程序依赖于能够获得尽可能高的准确度数字。这里可能是什么问题? Phone 本身?请求的设置?封顶数量的可能原因?
编辑: 试用华为时遇到同样的问题。所以代码似乎有问题?就像在 x 数量的位置请求精度从系统被限制在 10.0 之后?
来自我的 GPS 服务的相关信息:
清单
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
服务
private long UPDATE_INTERVAL = 2 * 1000; /* 10 secs */
private long FASTEST_INTERVAL = 2000; /* 2 sec */
static final int MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 1;
private void requestLocation() {
locationRequest = new LocationRequest();
locationRequest.setInterval(UPDATE_INTERVAL);
locationRequest.setFastestInterval(FASTEST_INTERVAL);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
gac = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
@Override
public void onLocationChanged(Location location) {
locationData = location; //1. Set local field to incoming location
gpsAccuracy = location.getAccuracy(); //2. Est. horizontal accuracy of location, radial, in meters.
}
看起来 10 米是使用 FusedLocationServicesApi 可以获得的最佳近似精度,HIGH_ACCURACY 是优先级。但是,我相信使用 LocationManager 可以获得更好的准确性。看看这篇文章: http://www.tothenew.com/blog/googles-fused-location-api-for-android/