Как получить широту и долготу изображения с помощью PHAsset в iOS?
Я пытаюсь получить изображения из библиотеки фотографий в диапазоне двух дат, и я получаю изображения успешно.
И я также получаю информацию об изображении, используя приведенный ниже код.
PHContentEditingInputRequestOptions *options = [[PHContentEditingInputRequestOptions alloc] init];
options.networkAccessAllowed = YES; //download asset metadata from iCloud if needed
[asset requestContentEditingInputWithOptions:options completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) {
CIImage *fullImage = [CIImage imageWithContentsOfURL:contentEditingInput.fullSizeImageURL];
//NSLog(@"fullImage=%@", fullImage.properties.description);
}];
Но информация об изображении дает мне в формате строки.
Я пытался преобразовать его в формат NSDictionary (для получения широты и долготы), но получить нулевой вывод.
Как получить широту и длину изображения?
если есть другой способ получить информацию, пожалуйста, помогите мне
заранее спасибо
1 ответ
Вам не нужно ничего делать, если у вас уже есть PHAssets (как вы говорите, вы успешно их получили).
Что вам нужно .location
собственность вашего PHAsset. Это в основном пример CLLocation. Вы можете использовать его как:
asset.location.coordinate.longitude
или же
asset.location.coordinate.latitude
Так как вы уже получили свой PHFetchResult
успешно, теперь вам нужно перебрать его, чтобы получить объект PHAsset, а затем получить информацию о местоположении от него, если он доступен. Чтобы получить GPS-информацию из PHAsset в виде словаря, добавьте этот метод:
-(NSMutableDictionary *) getGPSInformationForAsset: (PHAsset *) asset
{
NSString *longitude = [NSString stringWithFormat:@"%f",asset.location.coordinate.longitude];
NSString *latitude = [NSString stringWithFormat:@"%f",asset.location.coordinate.latitude];
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setValue:longitude forKey:@"longitude"];//Perform proper validation here for whatever your requirements are
[dic setValue:latitude forKey:@"latitude"];
return dic;
}
Теперь используйте этот метод как:
NSMutableDictionary *coordinatesDictionary = [self getGPSInformationForAsset:asset];
Вот и все, вы получили широту и долготу в словаре.