我正在开发一款iPhone应用程序,它将从拍摄的照片中提取GPS数据。我已经完成了这项功能的一切工作,但我注意到返回的GPS数据没有显示坐标值的正确+
或-
。例如,我在日志中获得此输出:
"{GPS}" = {
Altitude = "33.0329";
DOP = 65;
Latitude = "64.84069";
LatitudeRef = N;
Longitude = "32.41367";
LongitudeRef = W;
TimeStamp = "2014:01:04 14:47:01";
};
当我使用纬度和经度并使用反向地理定位映射时,我会在世界的另一边找到一些位置。在调查之后,我看到了价值:
Longitude = "32.41367";
应该是:
Longitude = "-32.41367";
它只是错过了否定。关于为什么会发生这种情况的任何想法?以下是构建上述输出的一些代码示例:
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *jpeg = UIImageJPEGRepresentation(image,image.scale);
CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)jpeg, NULL);
NSDictionary *metadata = (__bridge NSDictionary *)CGImageSourceCopyPropertiesAtIndex(source,0,NULL);
NSMutableDictionary *mutableMetadata = [metadata mutableCopy];
[mutableMetadata setLocation:self.currentLocation];
CFStringRef UTI = CGImageSourceGetType(source);
NSMutableData *data = [NSMutableData data];
CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef) data, UTI, 1, NULL);
CGImageDestinationAddImageFromSource(destination,source, 0, (__bridge CFDictionaryRef) mutableMetadata);
BOOL success = CGImageDestinationFinalize(destination);
NSLog(@"This is the log value that was referenced above: %@",mutableMetadata);
答案 0 :(得分:5)
N和E具有正值 S和W具有负值
但是,如果您只是将参考文献放在坐标中,Google地图就知道如何映射它们。 例如,在Google地图(50.53467,-100.45646)中等于N50.53467W100.45646
答案 1 :(得分:0)
只是一个猜测,但LongitudeRef = W可能意味着消极。看到西经有负值。
答案 2 :(得分:0)
Martijn是正确的lat lon值更常被写为N30.xxx和E97.xxx这个字母代表半球。转换为十进制度时,NSEW将转换为+/-。不知道为什么,但似乎谷歌选择转换GPS输出,这可能是在NMEA使用HDD.MMMMM并保持半球角色。