Метаданные GPS местоположения PHAsset, что не так?

пытаясь добавить местоположение из UIImage с помощью Phasset:

// image is a variable like so: image: UIImage

var newAsset = PHAssetChangeRequest.creationRequestForAssetFromImage(image)
newAsset.location = CLLocation(latitude: coordinate.latitude, coordinate.longitude)

этот код, по-видимому, работает -> сохранить новый актив в библиотеке фотографий с хорошей координатой. Я вижу это в самой библиотеке.

но когда я использую инструменты exif и подобные, большую часть времени словарь GPS пуст, как будто местоположение не было установлено. (также я заметил, что информация GPS не в формате exif), так что я думаю, информация о местоположении тоже где-то еще...

так что не так со свойством местоположения PHAsset? как правильно установить местоположение?


person raphael    schedule 27.07.2015    source источник


Ответы (1)


Фотографии отслеживают метаданные местоположения в своей собственной базе данных, отдельно от метаданных EXIF, хранящихся в каждом файле фотографии. Когда вы (как клиент Photos API) или пользователь создает/добавляете новый ресурс, Photos считывает данные о местоположении EXIF ​​из файла и устанавливает соответствующее местоположение в своей базе данных. Однако помимо этого API фотографий не прилагает никаких усилий для их синхронизации.

Если вы хотите обновить метаданные EXIF ​​в файле, вам нужно будет сделать это самостоятельно. (В этом может помочь ввод-вывод изображения — см. этот ответ.) Затем добавьте весь файл, а не только UIImage созданные из него, в фотографии с помощью creationRequestForAssetFromImageAtFileURL: или новых возможностей PHAssetCreationRequest в iOS 9.

person rickster    schedule 27.07.2015