我正在創建一個應用程序,需要確定我的當前位置(recD in didUpdateLocation :)是否存在於我擁有的一組地理座標中。現在我明白,比較平等的雙/浮點值可能會出錯,因爲地理座標中涉及的精度非常高。 GPS中的輕微不準確可能導致我的算法偏離軌道。因此我需要將它與一些誤差範圍進行比較。iOS比較GPS位置
如何比較2個CLLocations和誤差範圍?或者確定位置閱讀中的錯誤(我不認爲這是可能的,因爲CLLocationManager會糾正它)。
感謝提前:)
我正在創建一個應用程序,需要確定我的當前位置(recD in didUpdateLocation :)是否存在於我擁有的一組地理座標中。現在我明白,比較平等的雙/浮點值可能會出錯,因爲地理座標中涉及的精度非常高。 GPS中的輕微不準確可能導致我的算法偏離軌道。因此我需要將它與一些誤差範圍進行比較。iOS比較GPS位置
如何比較2個CLLocations和誤差範圍?或者確定位置閱讀中的錯誤(我不認爲這是可能的,因爲CLLocationManager會糾正它)。
感謝提前:)
在每個CLLocation
實例有聲明爲@property(readonly, nonatomic) CLLocationAccuracy horizontalAccuracy;
屬性你可以做的是使例程,如:
-(BOOL)isLocation:(CLLocation*)location inRangeWith:(CLLocation*)otherLocation{
CLLocationDistance delta = [location distanceFromLocation:otherLocation];
return (delta < location.horizontalAccuracy);
}
可以做得更復雜的邏輯,因爲這兩個地方有屬性。 ..
乾杯。 【ツ】
可以使用CoreLocation方法distanceFromLocation:
找到用戶的位置和另一點之間的距離。如果距離小於您決定的任何閾值,則可以假定位置相同。
CLLocationDistance threshold = 5.0; // threshold distance in meters
// note: userLocation and otherLocation are CLLocation objects
if ([userLocation distanceFromLocation:otherLocation] <= threshold) {
// same location
}
嗨jonkroll,我沒有看過任何定量的研究證明了這一點,但從它的外觀來看,Haversine公式看起來很複雜,距離從位置:最有可能用這個來計算2 lat-long之間的距離。我想避免在每個經緯度上使用該函數。任何解決方法? – ameyazing
【你有什麼試過?】(http://whathaveyoutried.com)檢查你的點是否在一個正方形或圓形的邊界或半徑爲誤差範圍內? –