27053


iPhoneの写真データから緯度と経度を取得しようとしていますが選択した写真だけでなく表示されている写真全てから緯度と経度のデータが取得されてしまいます。どのようにしましたら選択した写真のみのデータとすることができますでしょうか。

[code]

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        let fetchResult = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: nil)
        fetchResult.enumerateObjectsUsingBlock ({result, index, stop in
            if let asset = result as? PHAsset {
                if let location = asset.location {
                    let lat = location.coordinate.latitude as Double
                    let lng = location.coordinate.longitude as Double
                    print("GPS:\(lat),\(lng)")
                }
            }
        })
    }
    
[/code]


CC BY-SA 3.0
2016-06-24T21:30:43.277
27052
2016-06-25T10:26:00.347
2016-06-25T10:26:00.347
2238
14780
question
ios swift2
iPhoneの写真のうち選択したデータから緯度と経度を取得したい


あなたのコード中のこの行は、

[code]

    let fetchResult = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: nil)
    
[/code]

「メディアタイプが`Image`であるassetをすべて取得する」ということを意味しています。そのため、「選択した写真だけでなく」Photosフレームワークが管理する画像全ての情報が取得されてしまっています。

`imagePickerController(_:didFinishPickingMediaWithInfo:)`とPHAssetを組み合わせるなら、例えば上の行を次のように置き換えてみてください。

[code]

    let url = info[UIImagePickerControllerReferenceURL] as! NSURL
    let fetchResult = PHAsset.fetchAssetsWithALAssetURLs([url], options: nil)
    
[/code]


CC BY-SA 3.0
2016-06-24T22:09:08.397
27053
2016-06-25T01:54:27.780
2016-06-25T01:54:27.780
5519
13972
27052
answer