UIImagePickerControllerSourceTypeSavedPhotosAlbum を使用するときに、含まれている GPS メタデータに写真をアップロードできるようにアプリを更新しています。GPS データの精度は非常に重要です。ALAsset を使用して取得した位置データが、同じ写真を Photoshop で開いたときに表示される写真の実際の exif データと異なるという問題が発生しています。
xcode で GPS データを読み取るために、次の 2 つの方法を使用しました。
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 分を表示します。