2010-06-27 15 views
2

我想知道Location.distanceTo方法是否會在近似位置時使用位置對象的準確性字段,或者是否必須將錯誤添加到這些字段。用法是將距離與接近值進行比較。Location.distanceTo在近似距離計算中使用誤差參數?

Float dist=currentLocation.distanceTo(loc2); 

這會是

if (dist<100meters) 

if (dist+currentLocation.getAccuracy()+loc2.getAccuracy()<100meters) 

回答

2

它看起來像它忽略精度:
https://android.googlesource.com/platform/frameworks/base/+/donut-release/location/java/android/location/Location.java#400

400  /** 
401  * Returns the approximate distance in meters between this 
402  * location and the given location. Distance is defined using 
403  * the WGS84 ellipsoid. 
404  * 
405  * @param dest the destination location 
406  * @return the approximate distance in meters 
407  */ 
408  public float distanceTo(Location dest) { 
409   // See if we already have the result 
410   synchronized (mResults) { 
411    if (mLatitude != mLat1 || mLongitude != mLon1 || 
412     dest.mLatitude != mLat2 || dest.mLongitude != mLon2) { 
413     computeDistanceAndBearing(mLatitude, mLongitude, 
414      dest.mLatitude, dest.mLongitude, mResults); 
415     mLat1 = mLatitude; 
416     mLon1 = mLongitude; 
417     mLat2 = dest.mLatitude; 
418     mLon2 = dest.mLongitude; 
419     mDistance = mResults[0]; 
420     mInitialBearing = mResults[1]; 
421    } 
422    return mDistance; 
423   } 
424  }