我使用Google MAPS API获取当前用户的位置(GPS坐标)。但我有一个奇怪的问题:
在我的联想Android 4.2中,位置相当准确。
但在另一台设备(LG G3s)中,位置偏离了400-500米。
对于不同的设备,情况也是如此。在一个 - 它没关系,在另一个错误。
这是我的代码:
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mGoogleApiClient.connect();
@Override
public void onConnected(Bundle bundle) {
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(UPDATE_INTERVAL);
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
}
@Override
public void onConnectionSuspended(int i) {
Toast.makeText(getApplicationContext(), "GoogleApiClient connection has been suspend", Toast.LENGTH_SHORT).show();
}
@Override
public void onLocationChanged(Location location) {
Toast.makeText(getApplicationContext(), "LOCATION CHANGED\n"+
"LAT="+location.getLatitude()+"\n"+
"LON="+location.getLongitude(), Toast.LENGTH_SHORT).show();
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Toast.makeText(getApplicationContext(), "GoogleApiClient connection has failed", Toast.LENGTH_SHORT).show();
}
也许,我做错了什么?
如何获得更准确的坐标?
UPD: 我在外面测试GPS并且协调相当准确。 但在家里/办公室 - 坐标错误。用户位于办公室,但应用程序显示他在河中的位置,距办公室约500-600米)
我认为我的应用程序存在问题,因为用户说他在他的设备上运行Google地图并且位置没有错误..
答案 0 :(得分:1)
您可以通过去除仅使用GPS提供商来改进。 在建筑物内部,当靠近窗户时,这将导致大约30-50米的偏移。这比500米网络偏移要好。
答案 1 :(得分:0)
400-500m对于基于网络的位置是正常的。可能他们关闭了GPS。