地理位置点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 多边形点在地理位置上不准确
Android 地理围栏 PRIORITY_HIGH_ACCURACY 不准确
为了在 Android 中获得更准确的位置结果,使用 FusedLocationApi 和 FusedLocationProviderClient 哪个?