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

rap*_*ael 4 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)
Run Code Online (Sandbox Code Playgroud)

显然,这段代码可以工作 - >将新资源保​​存到具有良好坐标的照片库中.我可以在图书馆里看到它.

但是当我使用exif工具和类似工具时,大多数时候,GPS字典是空的,好像没有设置位置.(另外,我注意到GPS信息不是exif格式)所以我想,位置信息也在其他地方......

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

ric*_*ter 7

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

如果要更新文件中的EXIF元数据,则需要自己执行此操作.(图像I/O可以帮助解决这个问题 - 请参阅此答案.)然后,将整个文件(不仅仅是UIImage从中创建的文件)添加到使用creationRequestForAssetFromImageAtFileURL:的照片或PHAssetCreationRequestiOS 9中的新内容.