2010-11-29 20 views
1

嗨,那裏有我 我需要幫助處理與xcode的位置座標;準確地說,轉換。 我有CLLocation對象,它具有經緯度和長期使用手機的地理位置接收,工作正常。但我有處理轉換的問題。iphone;使用mapkit處理緯度/經度十進制值

我使用

[defaults setObject:[NSString stringWithFormat:@"%.9lf",location.coordinate.latitude] forKey:@"lastKnownLat"]; 

存儲在所述userdefaults lat和長值,但該位置的十進制值是ofcourse不是精確的,它可以是3.123456789或3.12345 - 在後一種情況下,該值是轉換爲3.123459999,我認爲在地圖上給出了錯誤的定位。

我該如何避免這種情況? 什麼可能是存儲經緯度值並在地圖上顯示它們的最佳方式?在mapkit中使用 ,它會在3.12345和3.12345999之間產生很大的差別嗎?

感謝

+0

你問是否在3.12345和3.12345999度之間有意義的差異。在赤道上,度數與他們所得到的一樣大,一度約爲362775英尺或110574米。乘以0.000001,即可得到4.3英寸或11釐米。兩者都遠遠低於任何GPS的準確度,當然是iPhone的準確度。 (對於人們的準確性,是的,通過mmany計算,小數點後第六位的誤差最終可能會滑到一個有意義的距離。) – 2010-12-08 02:44:17

+0

啊好吧,我想知道你是否感謝洞察力matthew,肯定教育:) – Veeru 2010-12-09 02:49:15

回答

4

NSUserDefaults有專門用於保存浮點值的方法,並且可以使用setDouble:forKey:儘可能多地保留精確越好。

0

存儲本身可能是通過核心數據或sqlite的數據,但有你想要使用kCLLocationAccuracyBest最準確的數據的最佳方式。看下面(refreshLoc是我的CLLocationManager變量)。

refreshLoc = [[CLLocationManager alloc] init]; 
refreshLoc.delegate = self; 
refreshLoc.desiredAccuracy = kCLLocationAccuracyBest; 
refreshLoc.distanceFilter = kCLDistanceFilterNone; 
[refreshLoc startUpdatingLocation]; 
+0

謝謝squeezemylime,我已經有了準確的位置,我只需要存儲它,並儘可能準確地檢索它。 – Veeru 2010-11-29 03:41:55

相關問題