从三个 Android 位置提供者提供最佳位置估计的方法

Posted

技术标签:

【中文标题】从三个 Android 位置提供者提供最佳位置估计的方法【英文标题】:Methods for giving best estimate of Location from three Android location providers 【发布时间】:2013-07-23 08:12:24 【问题描述】:

在阅读了这篇较早的帖子 Good way of getting the user's location in android 之后,我想知道是否有人对如何解决这个问题以找到最佳位置估计有任何理论。显然 GPS 是理想的,但假设它每隔一段时间就会给出一个不好的测量值。

假设我得到了三个度量值,GPSWIFICell Tower 以及它们的准确度,您建议用什么方法找到“最佳”位置?

我最初的反应是做某种类型的加权质心函数,其中我有三个点,并为所有三个点分配权重以确保准确性,然后以给定的精度找到最接近三个点的点。我的另一个想法是使用机器学习,但这似乎真的过分了,除非我专门做一些事情来解决这个问题。想法?这主要是基于我想知道 Skyhook 如何使用数据解决问题。

【问题讨论】:

【参考方案1】:
//declare constants

 // The minimum distance to change Updates in meters
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 20; // 10 meters

 // The minimum time between updates in milliseconds
private static final long MIN_TIME_BW_UPDATES = 2000 * 60 * 1; // 1 minute

public void getlocation() 
  
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

   // Define the criteria how to select the locatioin provider        
    Criteria criteria = new Criteria();
    provider = locationManager.getBestProvider(criteria, false);
    locationManager.requestLocationUpdates(provider, MIN_TIME_BW_UPDATES,
                  MIN_DISTANCE_CHANGE_FOR_UPDATES, this);

    if (locationManager != null) 
    Location location = locationManager.getLastKnownLocation(provider);

       if (location != null) 
          loclat = location.getLatitude();
          loclong = location.getLongitude();                                
       
   

【讨论】:

以上是关于从三个 Android 位置提供者提供最佳位置估计的方法的主要内容,如果未能解决你的问题,请参考以下文章

适用于 Android 位置管理器的实用程序

Android获取当前位置的最佳方式[重复]

位置Android的“保持当前最佳估计”有啥用?

仅从 GPRS 网络提供商 Android 获取位置

Android LocationManager 标准

标准类 - Android 位置 - 为啥选择 GPS 提供程序?