PHAsset Location -- GPS MetaData,怎么了?

PHAsset Location -- GPS MetaData, what's wrong?

尝试使用 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 的位置 属性 有什么问题? 如何正确设置位置?

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

如果您想更新文件中的 EXIF 元数据,您需要自己进行操作。 (图片 I/O 可以提供帮助 — 请参阅 this answer。)然后,使用 creationRequestForAssetFromImageAtFileURL: 或新的PHAssetCreationRequest iOS 9.

中的内容