iOS Swift.如何从UIImage(NSURL)获取GPS元数据?

rsh*_*hev 3 gps nsurl uiimage ios swift

引用仅具有NSURL的图像.如何从中获取GPS元数据?当然,我可以从NSURL加载UIImage,但那又怎么样?

我在这里找到的大多数答案都是关于UIImagePicker,然后使用ALAssets,但我没有这样的选择.

rsh*_*hev 8

回答我自己的问题.获取GPS元数据的记忆有效且快速的方法是

let options = [kCGImageSourceShouldCache as String: kCFBooleanFalse]
if let data = NSData(contentsOfURL: url), imgSrc = CGImageSourceCreateWithData(data, options) {
    let metadata = CGImageSourceCopyPropertiesAtIndex(imgSrc, 0, options) as Dictionary
    let gpsData = metadata[kCGImagePropertyGPSDictionary] as? [String : AnyObject]
}
Run Code Online (Sandbox Code Playgroud)

第二个选择是

if let img = CIImage(contentsOfURL: url), metadata = img.properties(), 
gpsData = metadata[kCGImagePropertyGPSDictionary] as? [String : AnyObject] { … }
Run Code Online (Sandbox Code Playgroud)

它在Swift中看起来更好但使用更多内存(通过Profiler测试).