地理位置点android和准确性

Posted

技术标签:

【中文标题】地理位置点android和准确性【英文标题】:Geo-location points android and Accuracy 【发布时间】:2015-01-29 05:27:05 【问题描述】:

我有一个非常复杂的问题,希望有人能帮助我

我正在构建跟踪用户在某些特定预定义点的移动的 android 应用程序,我想报告用户到达和离开这些点的情况。

问题是我使用 distanceTo 方法来获取当前用户位置和位置之间的距离来自位置服务,以便能够知道用户是到达还是离开

但是这里的准确性是一个大问题,有时它是“10”,有时它是“60”,基于我的 gps 服务的最佳提供商,所以用户报告到达和离开很多次同一个地方。

谁能帮帮我??

【问题讨论】:

我认为这取决于您获取位置的方式。基于 GPS 的位置始终是准确的,但是,如果您从网络提供商处获取位置,则这些位置不是很准确。 是的,使用 gps 时给我“10”,使用网络时给我“60”,我需要全部处理。 我不知道你说的“10”和“60”是什么意思,但是,我只能告诉你,如果你想要精确,你只需要通过GPS检索位置,你需要放弃从网络提供商那里获取位置。 "10" 和 "60" 是每个提供商的准确度,即使用户在室内并且无法使用 gps 获取位置,我也需要能够找到用户位置。跨度> 我认为你只能使用 Location 类的 getAccuracy() 方法。当该方法的返回值达到所需的精度时,您就可以开始做您想做的事情了。例如,如果你的 gps 给你一个位置,而 getAccuracy() 返回 50,你可以丢弃这个值,并等待另一个 gps 值,更准确 【参考方案1】:

使用 location.GetAccuracy() 是一个很好的方法。您可以过滤掉不符合您要求的 GPS 数据。请注意,始终保持 10 米精度的可能性很小,根据我的经验,10 米几乎是您可以获得的最佳精度。这样做:

@Override
public void onLocationChanged(Location location) 
    if (location != null) 
        // discard any location greater than 20 meters
        if (location.getAccuracy() < 20.0f) 
            // use your location data here
        
    

您可以在我的开源 Gps Tracker 项目中看到完整的工作示例:

https://github.com/nickfox/GpsTracker/blob/master/phoneClients/android/app/src/main/java/com/websmithing/gpstracker/LocationService.java

【讨论】:

以上是关于地理位置点android和准确性的主要内容,如果未能解决你的问题,请参考以下文章

shapely 和 matplotlib 多边形点在地理位置上不准确

iOS 和 Android 上相对地理定位的准确性

Android:提高地理围栏的准确性

android中当前位置的准确经纬度

Android 地理围栏 PRIORITY_HIGH_ACCURACY 不准确

为了在 Android 中获得更准确的位置结果,使用 FusedLocationApi 和 FusedLocationProviderClient 哪个?