我試圖在UIImagePickerController
採集的圖像的元數據中獲取或捕獲用戶位置,其源類型設置爲UIImagePickerControllerSourceTypeCamera
。當源類型爲UIImagePickerController中的相機時獲取圖像元數據中的位置(地理標記類型)
當源類型是攝像頭(通過攝像頭點擊圖片)時,我們可以從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
中選擇元數據的位置?
任何幫助將不勝感激。謝謝!
元數據位於UIImagePickerControllerMediaMetadata中。但它不包含位置信息;這取決於你。 – matt
@matt:是的!元數據在'UIImagePickerControllerMediaMetadata'中可用,並且不包含位置信息。感謝您的建議。 :) – Lion
對,就這樣想吧。您已被授權使用相機,因此自動獲取相機元數據(焦距,什麼類型的iPhone等)。但授權獲取用戶的位置是一個完全不同的球賽。這不是拍照的一部分;這是一個照片應用程序_might_可以做的事情。相機應用程序可以做到這一點,當且僅當用戶授權它。現在_you_是應用程序,所以如果您需要位置信息,_you_需要授權,您需要收集並插入該信息。 – matt