【发布时间】:2012-04-24 09:07:56
【问题描述】:
我的问题实际上看起来相当愚蠢...我正在编写一个使用 MKMapKit 的 iPhone 应用程序。该应用程序从提供的带有地理标记的照片中获取 EXIF 元数据。问题是我检索到的经纬度坐标,例如:
纬度:34.25733333333334
伦敦:118.5373333333333
返回中国的位置。是否存在我缺少的区域设置,或者我需要在使用它们之前转换纬度/经度坐标吗?
提前感谢大家提供的任何帮助。
这是我用来获取 GPS 数据的代码。您会注意到我将所有内容都记录到控制台,以便查看值是什么:
void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *) = ^(ALAsset *asset)
{
NSDictionary *metadata = asset.defaultRepresentation.metadata;
NSLog(@"Image Meta Data: %@",metadata);
NSDictionary *gpsdata = [metadata objectForKey:@"{GPS}"];
self.lat = [gpsdata valueForKey:@"Latitude"];
self.lng = [gpsdata valueForKey:@"Longitude"];
NSLog(@"\nLatitude: %@\nLongitude: %@",self.lat,self.lng);
};
NSURL *assetURL = [mediaInfo objectForKey:UIImagePickerControllerReferenceURL];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:assetURL
resultBlock:ALAssetsLibraryAssetForURLResultBlock
failureBlock:^(NSError *error) {
}];
UIImage *img = [mediaInfo objectForKey:@"UIImagePickerControllerEditedImage"];
previewImage.image = nil;
self.previewImage.image = img;
NSData *imageData = UIImagePNGRepresentation(img);
if ([imageData length] > 0) {
self._havePictureData = YES;
}
【问题讨论】:
-
刚刚用代码示例更新了它。
-
什么是
self.lat和self.lng?从用法上看不清楚类型。 -
我只使用两个 ivars 来存储检索到的 lat & lng。它们是双重类型。 (我也尝试将它们存储为 NSStrings,然后将它们转换为双精度值。结果相同。)
-
@LeachyPeachy 你用什么方法使用这个代码块?