某些设备上的位置读数错误/精度差

Posted

技术标签:

【中文标题】某些设备上的位置读数错误/精度差【英文标题】:Wrong location reading/bad accuracy on some devices 【发布时间】:2015-10-26 04:34:00 【问题描述】:

我使用 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();

也许,我做错了什么?

如何获得更准确的坐标?

统一更新: 我在外面测试了 GPS,坐标相当准确。 但在家里/办公室 - 坐标错误。用户位于办公室,但应用显示他在河中的位置,距离办公室约 500-600m)

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

【问题讨论】:

您在测试 GPS 坐标时是在室内还是室外? GPS 信号的质量对您所在的位置以及 GPS 接收器的质量非常重要。并非所有人都是平等的。 外坐标相当不错。请查看我的 UPD。 【参考方案1】:

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

【讨论】:

感谢您的回复。但是在构建设备时无法从卫星获取信号。我需要每 n 分钟提供一次坐标。 然后只给出最后一个已知位置;建筑物内没有信号。最后一个已知的 GPS 比当前网络更好 感谢您的回复,但如果用户仅在构建中启动应用程序?【参考方案2】:

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

【讨论】:

很好地猜测问题可能是什么,但就目前而言,答案更多的是评论质量。我建议扩大您的答案或将其删除并作为评论重新发布。 但是在谷歌地图应用位置可以。为什么?)

以上是关于某些设备上的位置读数错误/精度差的主要内容,如果未能解决你的问题,请参考以下文章

Android - 在服务线程上获取 GPS 坐标

joda API 和 UTC 时区的分钟/小时时差错误

Arduino 上的模拟读数返回错误值

手机加速度计精度

使用 jQuery 和 bootstrap-datetimepicker 获取两个日期,但它们之间的日差错误

iOS 9:按钮上的黑色背景,以及某些设备上的性能错误