2011-05-19 54 views
0

我有一個應用程序安裝在兩個設備,位於50米內。應用程序在2000英尺範圍內找到附近的在線用戶但是我無法找到另一個用戶在我附近(50米範圍內),並且絕對在線,當檢查我發現設備位置是這樣的,他們的差異超過2000英尺。那麼,有什麼可以成爲一個原因?爲什麼兩個用戶就在彼此附近,在2000英尺範圍內通過應用找不到對方。我已經使用corelocation框架來確定用戶當前的位置。並設定其最佳準確度水平。用於計算用戶之間距離的公式也是標準的核心位置 - 在iphone sdk的準確性問題

所以這裏的問題是關於核心位置的準確性。如何解決這類問題?,爲什麼設備即使設置了最佳準確度,也沒有顯示正確的位置。

回答

2

即使您在戶外時可以清楚地看到GPS衛星,也可以在10到30秒的時間內找到核心位置,以便在一定的可用準確度內找到您的位置。水平精度通常在1750米左右開始,最終縮小到5米以內。

你可以嘗試給你的用戶一些視覺指示,表明應用程序仍在嘗試找到他們的手機,並等到你有一個準確的閱讀。另外,如果您使用的是iPhone 4,則還有另一種級別的準確性,稱爲kCLLocationAccuracyBestForNavigation,顯然比kCLLocationAccuracyBest更準確一些。

+0

與核心位置相比,從MkMapView獲得的用戶位置有多精確?哪個更準確? – Matrix 2011-05-20 13:19:08

+0

我從來沒有使用MkMapView,所以我不確定,但我會假設MkMapView使用CoreLocation,所以它們應該具有相同的準確性。 – 2011-05-20 14:06:11

1

聽起來像設備沒有得到GPS鎖。你在裏面運行應用程序嗎?

您可以檢查的準確性iPhone已經成功通過檢查位置的水平精度得到恢復:

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
    fromLocation:(CLLocation *)oldLocation 
{ 
    NSLog("%f", newLocation.horizontalAccuracy); 
} 

什麼太大(幾百米),你知道你還沒有得到一個GPS鎖還。

+0

與核心位置相比,從MkMapView獲取的用戶位置有多精確?哪個更準確? – Matrix 2011-05-20 13:18:56

+0

MKMapView使用CoreLocation,因此它們都是相同的 – Sig 2011-05-20 17:18:33