4

在阅读了这篇较早的帖子后,在 Android 中获取用户位置的好方法,我想知道是否有人对如何解决这个问题以找到最佳位置估计有任何理论。显然 GPS 是理想的,但假设它每隔一段时间就会给出一个不好的测量值。

假设我得到了三个度量,GPSWIFI,以及Cell Tower它们的准确度,你会建议什么方法来找到“最佳”位置?

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

4

1 回答 1

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();                                
       }
   }
}
于 2013-07-24T04:52:21.240 回答