0

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 分を表示します。

4

1 に答える 1

1

あなたの変換は間違っています。Photoshop の方が正しいです。

47.576333 (DEG) は 47* 34.5799' (DM) に変換されます。
これは、Photoshop が明らかに表示する形式である47* 34.58 に丸めることができます。

DMS に変換すると、次の値が得られます: 47* 34' 35" N. (すべての "*" を度記号に置き換えてください。)

つまり、DMS (Degress Minutes Seconds) を DM (Degrees Minutes) 表現と交換しました。

于 2013-03-07T09:09:42.910 に答える