阅读这篇较旧的帖子后,Good way of getting the user's location in Android ,我想知道是否有人对如何解决这个问题以找到最佳位置估计有任何理论。显然 GPS 是理想的,但暂时假设它经常给出错误的测量值。
假设我得到了三种测量方法,GPS
、WIFI
和 Cell 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/