Как получить широту и долготу изображения с помощью 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];

Вот и все, вы получили широту и долготу в словаре.

Другие вопросы по тегам