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

标签 java android geolocation gps

阅读这篇较旧的帖子后,Good way of getting the user's location in Android ,我想知道是否有人对如何解决这个问题以找到最佳位置估计有任何理论。显然 GPS 是理想的,但暂时假设它经常给出错误的测量值。

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

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

最佳答案

//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();                                
       }
   }
}

关于java - 从三个 Android 位置提供者给出最佳位置估计的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17824066/

相关文章:

java.text.ParseException : Unparseable date when trying to convert "2013-07-01T04:37:14.771468Z" into Local time

java - Hamcrest 匹配器用于不带强制转换的集合参数

ios - 如果我的应用程序在其各种 View Controller 中使用位置管理器,我应该在哪里实例化它?

java - 用于压缩 Eclipse 中默认方法实现的正则表达式

java - 如何停止所有 Activity 线程的运行

android - 尝试获取契约(Contract)组时出现问题 ~ 未知 URL 内容 ://com. android.contacts

android - 键盘不会在窗口加载时隐藏

android - 在android中用点隐藏编辑文本的密码

php - 地理定位以查找最近的地点

c# - 如何使用 sharpmap 在地球上渲染一个国家的图像