某些设备上的位置读数错误/精度差
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。
【讨论】:
很好地猜测问题可能是什么,但就目前而言,答案更多的是评论质量。我建议扩大您的答案或将其删除并作为评论重新发布。 但是在谷歌地图应用位置可以。为什么?)以上是关于某些设备上的位置读数错误/精度差的主要内容,如果未能解决你的问题,请参考以下文章