【发布时间】:2012-11-02 02:06:16
【问题描述】:
我在 JPG 的 EXIF 标头中添加 GPS 坐标,并将它们保存到相机胶卷中。而且由于一些奇怪的原因,当我之后使用第三方应用查看 JPG EXIF 信息时,十进制纬度/经度坐标已被截断,并且我的位置精度丢失了。
示例:
[GPSDictionary setObject:[NSNumber numberWithDouble:12.34567890]
forKey:(NSString*)kCGImagePropertyGPSLatitude];
结果:
"{GPS}" = {
Latitude = "12.3456789";
};
但这就是 实际上在 JPG 文件的 EXIF 标头中结束的内容:
Latitude = "12.34566667";
其他时候情况更糟。
iPhone GPS: Longitude = 79.78598345
EXIF GPS: Longitude = 79.786
如何防止 iOS 破坏我的坐标位?
因为这会影响以后计算的准确性。
【问题讨论】:
-
带有 8 位小数的纬度或经度将位置精确到 1 毫米(或大约 1/16 英寸)以内。您真的需要这种级别的精度吗(我不相信您的输入数据如此准确)。此外,这看起来像是浮点十进制数不能用浮点二进制精确表示的问题。在这个问题上还有其他关于 SO 的帖子。见:stackoverflow.com/q/1089018/558933
-
我缩短了我的纬度值之一,以便更准确地了解在 NSLog 期间打印的内容。而且我希望将完全相同的值字符串保存在 EXIF 标头中。因为我会尽量精确。