0

我正在更新我的应用程序以允许在使用 UIImagePickerControllerSourceTypeSavedPhotosAlbum 时将照片上传到包含 GPS 元数据。GPS 数据的准确性非常重要。我遇到了一个问题,即使用 ALAsset 派生的位置数据与我在 Photoshop 中打开同一张照片时可以看到的照片的实际 exif 数据不同。

我使用了两种方法来读取 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 分钟,这确实是准确的。

4

1 回答 1

1

您的转换是错误的,Photoshop 更正确。

47.576333 (DEG) 转换为 47* 34.5799' (DM)。可以四舍五入到 47* 34.58
,这是 photoshop 明显显示的格式。

转换为 DMS,它会给出您的值:47* 34' 35" N。(请将所有“*”替换为度数符号。)

因此,您将 DMS(Degress Minutes Seconds)与 DM(Degrees Minutes)表示交换。

于 2013-03-07T09:09:42.910 回答