Расположение PHAsset - метаданные GPS, что не так?
Пытаемся добавить местоположение из 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? Как правильно установить местоположение?
1 ответ
Фотографии отслеживают метаданные местоположения в своей собственной базе данных, отдельно от метаданных EXIF, хранящихся в каждом файле фотографии. Когда вы (как клиент API Photos) или пользователь создаете / добавляете новый актив, Photoshop считывает данные местоположения EXIF из файла и устанавливает местоположение в своей базе данных для соответствия. Помимо этого, однако, API Фотографии не предпринимает усилий, чтобы синхронизировать их.
Если вы хотите обновить метаданные EXIF в файле, вам нужно сделать это самостоятельно. (Image I/O может помочь с этим - см. Этот ответ.) Затем добавьте весь файл, а не только UIImage
создан из него, чтобы фотографии с помощью creationRequestForAssetFromImageAtFileURL:
или новый PHAssetCreationRequest
вещи в iOS 9.