0

我需要访问源自用户的相机胶卷/照片库的用户提交照片的 GPS 坐标。为了现代性,我正在实施 PHAsset 而不是 ALAsset。

我知道位置服务已启用,因为我可以打印出用户的当前位置,并在我的 info.plist 文件中添加了“NSLocationAlwaysUsageDescription”、“NSLocationWhenInUseDescription”和“privacy - location usage description”键。我在 ViewController 的 .h 文件中导入了 CoreLocation、MobileCoreServices 和 Photos。

我当前在 didFinishPickingMediaWithInfo 委托方法中的代码如下:

NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
PHFetchResult *res = [PHAsset fetchAssetsWithALAssetURLs:[NSArray arrayWithObject:url] options:nil];
PHAsset *thisPhoto = [res objectAtIndex: 0];
CLLocation *photoLocation = [thisPhoto location];
NSLog(@"%@", photoLocation);

由于某种原因,这总是输出(null)。我是否缺少某些东西阻止我访问 PHAsset 位置数据?我知道 PHAsset 已正确分配,因为 [PHAsset creationDate] 适用于我选择的任何照片。

谢谢!

4

1 回答 1

2

您确实有权访问 PHAsset 位置数据(前提是可用)。用户可以选择不允许相机应用程序访问位置服务,这会导致照片中没有位置数据。

于 2015-05-21T23:32:33.120 回答