【问题标题】:How to write/get latitude longitude with image in uiimagepickercontroller?如何在uiimagepickercontroller中使用图像写入/获取纬度经度?
【发布时间】:2011-04-16 06:20:55
【问题描述】:

目前我在“已保存相册”中使用以下方法保存和图像。

UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

现在我想将当前的纬度和经度与该图像相关联。

我该怎么做?

我可以使用它的 mediaInfo 字典(元数据)吗?

我在 ios sdk 3.0 中工作。

请告诉我如何使用UIImageViewPickerController 中的图像获取/设置地理数据

【问题讨论】:

    标签: iphone iphone-sdk-3.0 geolocation uiimagepickercontroller


    【解决方案1】:

    恐怕你没有办法使用 UIImageWriteToSavedPhotosAlbum。

    但是,您可以使用另一种方法保存到 iphone 文件系统中(但不能保存在“保存的相册”中)。然后将其元数据保存在另一个文本文件中,并使用图像路径:

    对于 PNG:

    [UIImagePNGRepresentation(image) writeToFile: uniquePath atomically: YES];
    

    对于 JPG:

    [UIImageJPEGRepresentation(image, 1.0) writeToFile:jpgPath atomically:YES];
    

    【讨论】:

    • 但在这种情况下,我将无法从标准 uiimagepickerviewcontrollersavedphotosalbum 中获取该图像,并且我必须在您的情况下制作自己的浏览器,我已经在苹果示例代码中看到了 photolocations 应用程序同样的事情。
    • 是的,我知道。不过好像还没有别的办法:(
    【解决方案2】:

    AFAIK 这在 iOS 4.0 及更低版本中不受支持。

    从 iOS 4.1 开始,您可以使用 -[ALAssetsLibrary writeImageToSavedPhotosAlbum:metadata:completionBlock:] 来保存带有元数据的图像(未经测试,但我认为这应该可行)。不过,我不知道如何格式化 metadata 字典。

    您应该尝试从资产库中读取一些包含地理数据的现有图像,以检查字典的格式必须如何。

    【讨论】:

    【解决方案3】:

    您无法从来自 uiimagepickercontroller 的图像中获取纬度和经度。似乎苹果剥离了 exif 标签(我猜是出于隐私原因)。

    【讨论】:

    • 看到上面的答案在 4.1 中是可能的
    • 是的,但是 4.1 对于部署 imo 来说太年轻了
    【解决方案4】:

    如果您从相机获取图像,您应该从 CLLocationManager 获取位置。如果您从库中选择图像,您可以使用 ALAssertsLibrary 读取位置坐标:

    iPhone Get UIImagePickerController Lat/Lng

    获得位置后,您应该可以使用exif库将数据与图像一起保存。

    【讨论】:

    • 这样做的问题是,在拍照和触摸“使用照片”之间,手机的位置会发生变化。因此,我们无法可靠地确定通过这种方法拍摄照片时手机的位置。
    猜你喜欢
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多