PHAsset位置 - GPS元数据,出了什么问题?

时间:2015-07-27 23:08:30

标签: ios swift photokit

尝试使用Phasset从UIImage添加位置:

// image is a variable like so: image: UIImage

var newAsset = PHAssetChangeRequest.creationRequestForAssetFromImage(image)
newAsset.location = CLLocation(latitude: coordinate.latitude, coordinate.longitude)

此代码显然可行 - >使用良好的坐标将新资源保​​存到照片库中。我可以在图书馆里看到它。

但是当我使用exif工具和类似工具时,大部分时间,GPS字典都是空的,就像没有设置位置一样。 (另外,我注意到GPS信息不是exif格式) 所以我猜,位置信息也在其他地方...

那么PHAsset的位置属性有什么问题? 如何正确设置位置?

1 个答案:

答案 0 :(得分:6)

照片跟踪位置元数据,它是自己的数据库,与每个照片文件中存储的EXIF元数据分开。当您(作为Photos API的客户端)或用户创建/添加新资产时,Photos会从文件中读取EXIF位置数据,并在其数据库中设置匹配位置。然而,除此之外,Photos API不会努力使这些保持同步。

如果要更新文件中的EXIF元数据,则需要自己执行此操作。 (图片I / O可以提供帮助 - 请参阅this answer。)然后,使用UIImage或新{{}将整个文件(而不仅仅是从其创建的creationRequestForAssetFromImageAtFileURL:添加到照片中iOS 9中的1}}。