0

UIImagePickerController我正在尝试通过设置源类型来获取或捕获图像元数据中的用户位置UIImagePickerControllerSourceTypeCamera

当源类型是相机(相机点击的图像)时,我们可以从info参数中获取元数据,didFinishPickingMediaWithInfo但它不包含位置信息。

如果源类型是,photolibrary (UIImagePickerControllerSourceTypePhotoLibrary)那么我们可以metadata使用以下代码获取位置,

 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{


    NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
    PHFetchResult *fetchResult = [PHAsset fetchAssetsWithALAssetURLs:@[url] options:nil];
    PHAsset *asset = fetchResult.firstObject;

    NSLog(@"%f,%f",asset.location.coordinate.latitude,asset.location.coordinate.longitude);


[picker dismissViewControllerAnimated:YES completion:nil];

}

第二件事我们还可以管理位置CLLocationManager,我的意思是我们可以在 中捕获位置didFinishPickingMediaWithInfo。但我只想知道,didFinishPickingMediaWithInfo当相机选择图像或源类型为相机时,是否可以使用元数据选择位置?

任何帮助将不胜感激。谢谢!

4

1 回答 1

1

我得出的结论是,如果我们使用拍照,Camera那么我们无法在元数据中获取位置,所以如果我们想在从相机捕获图像时获取位置,我们必须在捕获时使用默认位置服务(CLLocationManager) - 我的意思是didFinishPickingMediaWithInfo方法。

于 2017-09-21T05:59:34.947 回答