2013-03-06 83 views
0

我正在更新我的應用程序以允許在使用UIImagePickerControllerSourceTypeSavedPhotosAlbum時將照片上傳到包含的GPS元數據。 GPS數據的準確性非常重要。我遇到了一個問題,即使用ALAsset導出的位置數據與在Photoshop中打開相同照片時可以看到的照片的實際exif數據不同。ALAsset GPS元數據與exif GPS數據不匹配

我用兩種方法來讀取在Xcode的GPS數據:

ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset) { 

CLLocation *location = [myasset valueForProperty:ALAssetPropertyLocation]; 

latitudeString = [NSString stringWithFormat:@"%g",point.latitude]; 

longitudeString = [NSString stringWithFormat:@"%g",point.longitude]; 

} 

ALAssetRepresentation *representation = [myasset defaultRepresentation]; 
NSDictionary *metadata = [representation metadata]; 

NSDictionary *gpsDict = [metadata objectForKey:@"{GPS}"]; 

NSNumber *latitudeNumber = [gpsDict objectForKey:@"Latitude"]; 

NSNumber *longitudeNumber = [gpsDict objectForKey:@"Longitude"]; 

if ([[gpsDict valueForKey:@"LatitudeRef"] isEqualToString:@"S"]) 
{ 

    //latitudeNumber = -latitudeNumber; 
} 

if ([[gpsDict valueForKey:@"LongitudeRef"] isEqualToString:@"W"]) 
{ 

    //longitudeNumber = -longitudeNumber); 

} 

在我使用作爲一個例子的代表性照片兩套以上代碼給我一個緯度47.576333其中轉換爲47,34,35N

如果我在Photoshop中查看exif數據 - 緯度是47,34,59N

這些數字很接近 - 但它們並不相同。沒有大約30%的照片發生這種情況。任何想法爲什麼?

編輯 - 照片店不給秒 - 它給34.59分鐘,這確實是準確的。

+0

47,34,35N不是一個正確的表示,再看一下,是47 * 34'35「N(稱爲DMS)還是47 * 34.35'N(稱爲DM),其中」*「 「表示我的ipad沒有的度數符號。 – AlexWien 2013-03-07 08:54:43

回答

1

你的轉換是錯誤的,photoshop更正確。

47.576333(DEG)轉換爲47 * 34.5799'(DM)。可以四捨五入爲47 * 34.58
這是photoshop明顯顯示的格式。

轉化爲DMS它給你的價值:47 * 34' 35" N (請全部替換 「有度*符號」。)

所以,你與DM交換DMS(輩分分秒)(度數)

+0

我誤解了 - 我以爲Photoshop給了我34分59秒,但你是正確的 - 這是34.59分鐘。謝謝。 – Jennifer 2013-03-07 21:56:19