大家好 我需要帮助处理与xcode的位置坐标;确切地说,转换。 我有CLLocation对象,它使用手机的地理位置接收lat和long,工作正常。但我在处理转换时遇到问题。
我使用
将lat和long值存储在userdefaults中[defaults setObject:[NSString stringWithFormat:@"%.9lf",location.coordinate.latitude] forKey:@"lastKnownLat"];
但该位置的十进制值是不精确的,它可能是3.123456789或3.12345 - 在后一种情况下,该值转换为3.123459999,我认为这在地图上给出了错误的定位。
我该如何避免这种情况? 什么是存储lat / long值并在地图上显示它们的最佳方法? 在mapkit中,它会在3.12345和3.12345999之间产生很大差异吗?
由于
答案 0 :(得分:4)
NSUserDefaults
具有专门用于保存浮点值的方法,您可以使用setDouble:forKey:来保持尽可能高的精度。
答案 1 :(得分:0)
存储数据本身的最佳方式可能是通过Core Data或sqlite,但要获得最准确的数据 kCLLocationAccuracyBest 。见下文(refreshLoc是我的CLLocationManager变量)。
refreshLoc = [[CLLocationManager alloc] init];
refreshLoc.delegate = self;
refreshLoc.desiredAccuracy = kCLLocationAccuracyBest;
refreshLoc.distanceFilter = kCLDistanceFilterNone;
[refreshLoc startUpdatingLocation];