Метаданные ALAsset GPS не соответствуют данным exif GPS

Я обновляю свое приложение, чтобы разрешить загрузку фотографий во включенные метаданные GPS при использовании UIImagePickerControllerSourceTypeSavedPhotosAlbum. Точность данных GPS очень важна. Я столкнулся с проблемой, когда данные о местоположении, полученные с помощью ALAsset, отличаются от фактических данных exif фотографии, которые я вижу при открытии той же фотографии в Photoshop.

Я использовал два метода для чтения данных GPS в xcode:

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,35 с.ш.

Если я смотрю в фотошопе exif данные - широта 47,34,59 с.ш.

Эти цифры близки, но они не совпадают. Это происходит без примерно 30% моих фотографий. Есть идеи, почему?

Редактировать - фотомагазин не дает секунд - он дает 34,59 минуты, что действительно точно.


person Jennifer    schedule 06.03.2013    source источник
comment
47,34,35N не является правильным представлением. посмотрите еще раз, это 47 * 34'35N (называемый DMS) или 47 * 34,35'N (называемый DM), где * означает символ градуса, которого нет в моем ipdad.   -  person AlexWien    schedule 07.03.2013


Ответы (1)


У вас неправильная конвертация, фотошоп правильнее.

47,576333 (DEG) преобразуется в 47* 34,5799' (DM). который можно округлить до 47* 34,58
, который, очевидно, отображает формат Photoshop.

преобразованный в DMS, он дает ваше значение: 47 * 34' 35 "N. (Пожалуйста, замените все "*" символом градусов.)

Таким образом, вы заменили DMS (дегрессивные минуты-секунды) на DM (градусы-минуты).

person AlexWien    schedule 07.03.2013
comment
Я неправильно понял - я думал, что Photoshop дал мне 34 минуты и 59 секунд, но вы правы - это 34,59 минуты. Спасибо. - person Jennifer; 08.03.2013