2017-07-17 9 views
0

ソースタイプがUIImagePickerControllerSourceTypeCameraUIImagePickerControllerで選択された画像のメタデータ内のユーザーの場所を取得または取得しようとしています。ソースタイプがカメラのUIImagePickerController(ジオタギングの種類)の場合、画像のメタデータの位置を取得します

ソースタイプがカメラ(カメラでクリックされた画像)の場合、infoパラメータのdidFinishPickingMediaWithInfoからメタデータを取得できますが、位置情報は含まれていません。ソースタイプは以下のコードとmetadataphotolibrary (UIImagePickerControllerSourceTypePhotoLibrary)し、我々が得ることができる場所、我々はまた、CLLocationManagerと場所を管理することができます

-(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]; 

} 

第二のものがある場合は

は、私たちはdidFinishPickingMediaWithInfoで場所をキャプチャすることができます意味します。しかし、私は、didFinishPickingMediaWithInfoのメタデータで場所を選ぶことが可能であることを知りたいですか?

ご協力いただければ幸いです。ありがとう!

+0

メタデータはUIImagePickerControllerMediaMetadataにあります。しかし、位置情報は含まれていません。それはあなた次第です。 – matt

+0

@matt:うん!メタデータは 'UIImagePickerControllerMediaMetadata'で利用可能であり、位置情報は含まれていません。提案していただきありがとうございます。 :) – Lion

+1

そう、このように考えてください。あなたはすでにカメラを使用する権限があるので、自動的にカメラのメタデータ(焦点距離、iPhoneの種類など)を取得することができます。しかし、ユーザーの所在地を取得する権限は、まったく異なるボールゲームです。それは写真を撮ることの一部ではありません。それは何か_else_写真撮影アプリ_might_が行うものです。カメラアプリは、ユーザーが許可した場合にのみ、その操作を実行できます。今_you_はアプリなので、場所情報が必要な場合は、_you_は認証が必要で、_you_はその情報を収集して挿入する必要があります。 – matt

答えて

0

Cameraを使用して写真を撮ると、メタデータ内の場所を取得できないという結論に達しました。カメラから画像を取得するときに位置を取得するには、一度にデフォルト位置サービス(CLLocationManager)捕獲の - 私はdidFinishPickingMediaWithInfo方法で意味する。

関連する問題