在iphone xcode中存储纬度经度的最佳和最精确的数据类型是什么?

时间:2011-09-01 12:07:21

标签: ios objective-c cocoa-touch core-location

我正在构建一个基于地理定位的应用程序,我想知道哪种数据类型最适合存储lat / long我使用的是doubleValue,但我认为我们可以更精确地像10位小数。

4 个答案:

答案 0 :(得分:12)

double是iOS本身使用的值。 iOS使用CLLocationDegrees表示纬度/经度值,它是 double typedef

IMO,使用double / CLLocationDegrees将是最佳选择。

答案 1 :(得分:5)

查看CLLocationCoordinate2D的定义:

typedef struct {
    CLLocationDegrees latitude;
    CLLocationDegrees longitude;
} 
CLLocationCoordinate2D;

然后是CLLocationDegrees;

的位置
typedef double CLLocationDegrees;

我们可以看到精度是双精度的。因此,你不能做得更好。

答案 2 :(得分:3)

在iOS SDK中已有答案:)

使用look at CLLocationCoordinate2D - CoreLocation使用它来使用CLLocationDegrees类型存储它的lat / lngs。如果这是CoreLocation给你的准确性,那么这将是一个准确的,因为它会得到!

答案 3 :(得分:2)

不,它不会,因为lat / long iOS将使用也是双倍。

/*
 *  CLLocationDegrees
 *  
 *  Discussion:
 *    Type used to represent a latitude or longitude coordinate in degrees under the WGS 84 reference
 *    frame. The degree can be positive (North and East) or negative (South and West).  
 */
typedef double CLLocationDegrees;