Я обновляю свое приложение, чтобы разрешить загрузку фотографий во включенные метаданные 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 минуты, что действительно точно.