Чтение данных GPS с изображения, возвращаемого камерой в iOS iphone

Мне нужно получить GPS-координаты изображения, снятого камерой iOS-устройства. Меня не волнуют изображения Camera Roll, только изображение, снятое с помощью UIImagePickerControllerSourceTypeCamera.

Я прочитал много ответов на стеке, напримерПолучить данные Exif из UIImage - UIImagePickerController, который предполагает, что вы используете платформу AssetsLibrary, которая, похоже, не работает с изображениями с камеры, или CoreLocaiton, чтобы получить широту / долготу от самого приложения, а не от изображения.

Использование CoreLocationis not an option, Это не даст мне координаты при нажатии кнопки спуска затвора. (В решениях на основе CoreLocation вам необходимо либо записать координаты до того, как вы откроете вид с камеры, либо после, и, конечно, если устройство перемещается, координаты будут неправильными. Этот метод должен работать со стационарным устройством.)

Я только iOS5, поэтому мне не нужно поддерживать старые устройства. Это также для коммерческого продукта, поэтому я не могу использоватьhttp://code.google.com/p/iphone-exif/.

Итак, каковы мои варианты чтения данных GPS с изображения, возвращаемого камерой в iOS5? Все, о чем я могу думать сейчас, - это сохранить изображение в Camera Roll, а затем использовать библиотеку AssetsLibrary, но это выглядит странно.

Спасибо!

Вот код, который я написал на основе ответа Калеба.

<code>    UIImage *image =  [info objectForKey:UIImagePickerControllerOriginalImage];

    NSData *jpeg = UIImageJPEGRepresentation(image,1.0);
    CGImageSourceRef  source ;
    source = CGImageSourceCreateWithData((__bridge CFDataRef)jpeg, NULL);

    NSDictionary *metadataNew = (__bridge NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source,0,NULL);  

    NSLog(@"%@",metadataNew);
</code>

и моя консоль показывает:

<code>    2012-04-26 14:15:37:137 ferret[2060:1799] {
        ColorModel = RGB;
        Depth = 8;
        Orientation = 6;
        PixelHeight = 1936;
        PixelWidth = 2592;
        "{Exif}" =     {
            ColorSpace = 1;
            PixelXDimension = 2592;
            PixelYDimension = 1936;
        };
        "{JFIF}" =     {
            DensityUnit = 0;
            JFIFVersion =         (
                1,
                1
            );
            XDensity = 1;
            YDensity = 1;
        };
        "{TIFF}" =     {
            Orientation = 6;
        };
    }
</code>

Нет широты / долготы.

Ответы на вопрос(9)

Ваш ответ на вопрос