我从一张图像中发现了一些关于使用ALAssetslibrary的gps的exif信息。我可以正确显示整个退出信息,但是当我尝试仅取得纬度时,我总是收到空。 这是关于GPS的EXIF信息:Objective-C/ALAssetslibrary - 从图像exif信息中获取gps纬度
"{GPS}" = {
Altitude = 0;
AltitudeRef = 1;
DateStamp = "0111:06:09";
Latitude = "45.84633333333333";
LatitudeRef = N;
Longitude = "12.58";
LongitudeRef = E;
TimeStamp = "10:39:04.00";
};
这是我使用的外带信息代码:
__block NSConditionLock * assetsReadLock = [[NSConditionLock alloc] initWithCondition:WDASSETURL_PENDINGREADS];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
__block ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
__block NSString *description = [[NSString alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if (group) {
[group setAssetsFilter:[ALAssetsFilter allPhotos]];
[group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop){
if (asset){
NSDictionary *data = [[asset defaultRepresentation] metadata];
NSLog(@"DATA: %@", data);
NSNumber *width = [[[asset defaultRepresentation] metadata] objectForKey:@"PixelWidth"];
NSString *widthString = [NSString stringWithFormat:@"%@", width];
[widthList addObject:widthString];
NSNumber *height = [[[asset defaultRepresentation] metadata] objectForKey:@"PixelHeight"];
NSString *heightString = [NSString stringWithFormat:@"%@", height];
[heightList addObject:heightString];
NSString *latitude = [[[asset defaultRepresentation] metadata] objectForKey:@"Latitude"];
NSLog(@"latitude %@", latitude);
NSString *latitudeString = [NSString stringWithFormat:@"%@", latitude];
if(latitude != NULL){
[latitudeList addObject:latitude];
} else {
NSString *noLatitude = [[NSString alloc] init];
noLatitude = @"No latitude available";
[latitudeList addObject:noLatitude];
}
}
}];
}
好了,在这一点上,我可以很容易地花费大约宽度信息和图像的高度,但当我尝试采取纬度或经度我总是收到空。我做错了什么?
感谢您的帮助!