Android GPS定位精度问题

5sxhfpxr  于 2023-11-15  发布在  Android
关注(0)|答案(2)|浏览(213)

我在android上的gps跟踪应用程序工作.这里是我的代码架构:
1.BackgroundSyncService:用于获取位置更新的服务类,这里初始化GoogleApiClient,实现其他与位置相关的方法。
1.AppRunPackerReceiver:BroadcastReceiver类,用于检查我的BackgroundSyncService在某个时间间隔内是否运行,如果停止则启动。
1.GpsEnableReceiver:一个BroadcastReceiver,当GPS状态改变时会触发。它会检查我的BackgroundSyncService在一个时间间隔内是否在运行。如果它停止了,那么它会启动。
1.InternetConnectionStateReceiver:BroadcastReceiver,当网络状态发生变化时会触发,会在一定时间间隔内检查我的BackgroundSyncService是否在运行,如果停止则启动。
在我的BackgroundSyncService服务中,我使用以下方式初始化GoogleApiClient:

public void setLocationLocationRequest() {

        try {
            googleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this)
                    .addOnConnectionFailedListener(this).addApi(com.google.android.gms.location.LocationServices.API).build();

            locationRequest = new LocationRequest();
            locationRequest.setInterval(3000);
            locationRequest.setFastestInterval(3000);
            locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
            googleApiClient.connect();
        } catch (Exception e) {

    }

字符串
这里的精度是LocationRequest.PRIORITY_HIGH_ACCURACY,间隔是

locationRequest.setInterval(3000)


here是GoogleApiClient实现代码。
This应用程序GPS信息部分包含纬度经度和精度参数

**我的发现:**在onLocationChanged(Location location)方法中,我以这种方式检查位置对象的精度:location.getAccuracy()。如果精度小于50米,那么我接受它。

在85%的情况下,它就像一个魅力。它从GPS发送给我准确的位置。但在15%的情况下,它发送给我不准确的位置,如更多>300米。
15%的设备是低成本的中国品牌移动的。

我的问题:

1.我怎样才能使准确率接近99%。我的代码架构有问题吗?

  1. GPS的准确性是否取决于设备配置?如果是,那么我可以为低配置设备做些什么?
    1.如何优步,去JEK等.乘车共享应用程序适用于所有设备?他们有额外的编码为GPS只?
    1.我申请的是孟加拉国。这里的互联网很慢。这对GPS精度有负面影响吗?
    提前感谢这条线索。也为糟糕的英语道歉。
ifmq2ha2

ifmq2ha21#

1.我怎样才能使准确率接近99%。我的代码架构有问题吗?
这是真实的生活场景。你不能确保所有的位置提供商将按预期工作。你应该要求最好的可用位置。

  1. a)GPS精度是否取决于设备配置?
    是的。有些设备可能有旧的GPS芯片组,只能跟踪GPS信号(美国),因为有其他定位系统,如伽利略(欧洲),GLONASS(俄罗斯),QZSS(日本)和北斗(中国)。芯片组支持这些类型越多,你就有更多的机会跟踪更多的卫星,从而定位。TTFF(首次定位时间)取决于GPS接收器有多少通道。
    B)如果是,那么我可以为低配置设备做些什么?
    由于这是一个硬件问题,你不能做任何事情在这里。但其他位置来源可以弥补缺乏GPS数据,如AGPS(辅助GPS),wifi和Hive定位。也有一些付费选项,提供了一个数据库来定位您的设备使用wifi接入点和cellids(他们声称他们提供最好的wifi解决方案,但我不确定,因为我不使用它。你可以检查出来http://combain.com). Wifi和cellid也取决于周围有多少wifi接入点和手机信号塔以及它们有多远(信号强度).如果你需要50米的精度,Hive定位无关但WiFi有机会接近这个值.
    2009年的一些研究结果[3]
  • 3G iPhone w/ A-GPS ~ 8米
  • 3G iPhone w/ wifi ~ 74米
  • 3G iPhone w/Hive定位~ 600米

1.如何优步,去JEK等.乘车共享应用程序适用于所有设备?他们有额外的编码为GPS只?
他们可能有特定的定位策略,但它将基于在GPS中断期间使用其他来源。
1.我申请的是孟加拉国。这里的互联网很慢。这对GPS精度有负面影响吗?
其他答案声称互联网与GPS无关。是的,它与GPS无关,而是与位置有关。AGPS使用互联网获取3种类型的数据(卫星信号,如果星历和历书已经过时,或者设备从先前的位置定位移动了几百公里,那么它被称为冷启动,大约需要12- 15分钟无AGPS。
融合的位置提供商已经知道如何提供最好的解决方案与这些配置,所以你应该祝福它。
参考文献:

6kkfgxo0

6kkfgxo02#

第一(和第二)
1.我怎样才能使准确率接近99%。我的代码架构有问题吗?

  1. GPS的精度是否取决于设备的配置?如果是,那么我可以为低配置设备做些什么?
    设备配置和代码架构都很重要。如果你已经有85%的成功率,我认为代码架构是好的。
    就GPS而言,当涉及到设备配置和准确性时,视线是一个重要因素。虽然低成本的移动的可以通过清晰的视线返回准确的位置。您可以尝试多运行2个周期/等待以获得更高的准确性。
    在最坏的情况下,为了它的价值,你也可以尝试使用LocationManager和GPS提供商技术检索位置,该技术作为15%的后备方案,只是为了比较并确保你使用的是你能得到的最准确的位置。
    在大多数情况下,通过使用定位服务API,您将获得更好的电池性能以及更合适的准确性。
    1.如何优步,去JEK等.乘车共享应用程序适用于所有设备?他们有额外的编码为GPS只?
    他们做的工作,但并不总是与最高的准确度为应用程序内收到的位置。如果有任何位置黑客为我们的开发人员,我们需要找到他们,也许是第5页谷歌搜索结果:)或受益于开源环境。对我来说,最佳做法和android repo链接就足够了。你已经遵循了像Receive location updates的职位
    1.我申请的是孟加拉国。这里的互联网很慢。这对GPS精度有负面影响吗?
    互联网与LocationManager + GPS_PROVIDER无关

相关问题