4

Phasset を使用して UIImage から場所を追加しようとしています:

// 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 の location プロパティの何が問題なのですか? どのように適切に場所を設定できますか?

4

1 に答える 1

7

Photos は、各写真ファイルに保存されている EXIF メタデータとは別に、独自のデータベースで位置メタデータを追跡します。あなた (Photos API のクライアントとして) またはユーザーが新しいアセットを作成/追加すると、Photos はファイルから EXIF 位置データを読み取り、データベース内の位置を一致するように設定します。ただし、それ以上は、Photos API はこれらの同期を維持しようとはしません。

ファイル内の EXIF メタデータを更新する場合は、自分で行う必要があります。(Image I/O はこれに役立ちます —この回答を参照してください。) 次に、ファイルから作成されたものだけでなく、ファイル全体UIImageを Photos usingまたはiOS 9creationRequestForAssetFromImageAtFileURL:の新しいものに追加します。PHAssetCreationRequest

于 2015-07-27T23:35:52.657 に答える