错误的位置读取/某些设备的准确性差

时间:2015-08-03 22:48:48

标签: android gps location

我使用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地图并且位置没有错误..

2 个答案:

答案 0 :(得分:1)

您可以通过去除仅使用GPS提供商来改进。 在建筑物内部,当靠近窗户时,这将导致大约30-50米的偏移。这比500米网络偏移要好。

答案 1 :(得分:0)

400-500m对于基于网络的位置是正常的。可能他们关闭了GPS。