某些设备上的位置 reading/bad 准确度错误

Wrong location reading/bad accuracy on some devices

我使用 Google MAPS API 来获取当前用户的位置(GPS 坐标)。但是我有一个奇怪的问题:

在我的Lenovo 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();
}

也许,我做错了什么?

如何获得更准确的坐标?

更新: 我在外面测试了 GPS,坐标相当准确。 但是在 house/office - 坐标错误。用户位于办公室,但应用程序显示他的位置在河中,距办公室约 500-600 米)

我认为我的应用程序有问题,因为用户说他在他的设备上运行 Google 地图并且位置没有错..

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

您可以通过要求仅使用 GPS 提供程序来改进。 在建筑物内,当靠近 window 时,这将导致大约 30 - 50m 的偏移。这比 500m 的网络偏移要好。